]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.5.12
authorfred <fred>
Wed, 27 Mar 2002 02:02:58 +0000 (02:02 +0000)
committerfred <fred>
Wed, 27 Mar 2002 02:02:58 +0000 (02:02 +0000)
67 files changed:
lily/align-interface.cc
lily/arpeggio.cc
lily/auto-change-iterator.cc
lily/axis-group-engraver.cc
lily/axis-group-interface.cc
lily/break-align-engraver.cc
lily/break-align-item.cc
lily/chord-name-engraver.cc
lily/collision.cc
lily/command-request.cc
lily/dot-column.cc
lily/duration.cc
lily/dynamic-performer.cc
lily/engraver-group-engraver.cc
lily/gourlay-breaking.cc
lily/include/protected-scm.hh
lily/item.cc
lily/key-engraver.cc
lily/key-item.cc
lily/lexer.ll
lily/local-key-engraver.cc
lily/lyric-phrasing-engraver.cc
lily/main.cc
lily/moment.cc
lily/music-sequence.cc
lily/music.cc
lily/my-lily-parser.cc
lily/new-spacing-spanner.cc
lily/note-column.cc
lily/note-heads-engraver.cc
lily/paper-def.cc
lily/part-combine-music-iterator.cc
lily/performer-group-performer.cc
lily/piano-pedal-engraver.cc
lily/pitch.cc
lily/property-engraver.cc
lily/repeat-acknowledge-engraver.cc
lily/repeated-music.cc
lily/request-chord-iterator.cc
lily/request-chord.cc
lily/rest-collision.cc
lily/scaled-font-metric.cc
lily/score.cc
lily/script-engraver.cc
lily/script.cc
lily/separating-group-spanner.cc
lily/separation-item.cc
lily/sequential-music-iterator.cc
lily/side-position-interface.cc
lily/simple-spacer.cc
lily/simultaneous-music-iterator.cc
lily/slur-bezier-bow.cc
lily/slur.cc
lily/spaceable-grob.cc
lily/spacing-spanner.cc
lily/span-arpeggio-engraver.cc
lily/span-bar.cc
lily/spanner.cc
lily/text-spanner.cc
lily/tie.cc
lily/time-signature-performer.cc
lily/time-signature.cc
lily/translator-group.cc
lily/translator.cc
lily/volta-engraver.cc
modules/GNUmakefile
scripts/midi2ly.py [new file with mode: 0644]

index 6f6321af680df9f7fa860101ead0906474c358db..8211c349af283717552e9abeba981fac6f614c2b 100644 (file)
@@ -123,8 +123,8 @@ Align_interface::align_elements_to_extents (Grob * me, Axis a)
   SCM thr = me->get_grob_property ("threshold");
   if (gh_pair_p (thr))
     {
-      threshold[SMALLER] = gh_scm2double (gh_car (thr));
-      threshold[BIGGER] = gh_scm2double (gh_cdr (thr));      
+      threshold[SMALLER] = gh_scm2double (ly_car (thr));
+      threshold[BIGGER] = gh_scm2double (ly_cdr (thr));      
     }
 
   
@@ -143,19 +143,19 @@ Align_interface::align_elements_to_extents (Grob * me, Axis a)
          // todo: fucks up if item both in Halign & Valign. 
          SCM min_dims = e->remove_grob_property ("minimum-space");
          if (gh_pair_p (min_dims) &&
-             gh_number_p (gh_car (min_dims))
-             && gh_number_p (gh_cdr (min_dims)))
+             gh_number_p (ly_car (min_dims))
+             && gh_number_p (ly_cdr (min_dims)))
            {
              y.unite (ly_scm2interval (min_dims));
            }
          
          SCM extra_dims = e->remove_grob_property ("extra-space");
          if (gh_pair_p (extra_dims) &&
-             gh_number_p (gh_car (extra_dims))
-             && gh_number_p (gh_cdr (extra_dims)))
+             gh_number_p (ly_car (extra_dims))
+             && gh_number_p (ly_cdr (extra_dims)))
            {
-             y[LEFT] += gh_scm2double (gh_car (extra_dims));
-             y[RIGHT] += gh_scm2double (gh_cdr (extra_dims));
+             y[LEFT] += gh_scm2double (ly_car (extra_dims));
+             y[RIGHT] += gh_scm2double (ly_cdr (extra_dims));
            }
 
          elems.push (e);
@@ -245,7 +245,7 @@ Align_interface::align_elements_to_extents (Grob * me, Axis a)
 Axis
 Align_interface::axis (Grob*me)
 {
-  return  Axis (gh_scm2int (gh_car (me->get_grob_property ("axes"))));
+  return  Axis (gh_scm2int (ly_car (me->get_grob_property ("axes"))));
 }
 
 
@@ -259,10 +259,10 @@ Align_interface::get_count (Grob*me,Grob*s)
   int c =0;
   while (gh_pair_p (e))
     {
-      if (gh_car (e) == s->self_scm ())
+      if (ly_car (e) == s->self_scm ())
        break;
       c++;
-      e = gh_cdr (e);
+      e = ly_cdr (e);
     }
   return c;
 }
index 900949224c34ce87afb0529127e99b3b06f7562d..5b0e755577b254f27b611484f4a51ef5ceb56732 100644 (file)
@@ -29,9 +29,9 @@ Arpeggio::brew_molecule (SCM smob)
   Grob *me = unsmob_grob (smob);
   
   Grob * common = me;
-  for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = ly_cdr (s))
     {
-      Grob * stem =  unsmob_grob (gh_car (s));
+      Grob * stem =  unsmob_grob (ly_car (s));
       common =  common->common_refpoint (Staff_symbol_referencer::staff_symbol_l (stem),
                                 Y_AXIS);
     }
@@ -47,9 +47,9 @@ Arpeggio::brew_molecule (SCM smob)
   Interval heads;
   Real my_y = me->relative_coordinate (common, Y_AXIS);
       
-  for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = ly_cdr (s))
     {
-      Grob * stem = unsmob_grob (gh_car (s));
+      Grob * stem = unsmob_grob (ly_car (s));
       Grob * ss = Staff_symbol_referencer::staff_symbol_l (stem);
       Interval iv =Stem::head_positions (stem);
       iv *= Staff_symbol::staff_space (ss)/2.0;
index 2f29c4be38e47c49f43f0dc175ac84f6840b06b6..32b1b05608a6f05c763e19ff7e2764780a031af5 100644 (file)
@@ -85,8 +85,8 @@ Auto_change_iterator::pending_pitch (Moment m) const
   while (1)
     {
       SCM muses = iter->get_music (m);
-      for (SCM s = muses; gh_pair_p (s); s=gh_cdr (s))
-       if (Note_req* nr = dynamic_cast<Note_req*> (unsmob_music (gh_car (s))))
+      for (SCM s = muses; gh_pair_p (s); s=ly_cdr (s))
+       if (Note_req* nr = dynamic_cast<Note_req*> (unsmob_music (ly_car (s))))
          {
            ps.push (*unsmob_pitch (nr->get_mus_property ("pitch")));
          }
index 1a68c4251fd3fbeb155ac0594e371727dfa5c1f3..3c1679614737daee928ef2d242583073dd4b730e 100644 (file)
@@ -65,21 +65,21 @@ Axis_group_engraver::finalize ()
   String type = daddy_grav_l ()->type_str_ ;
   SCM dims = get_property ("VerticalExtent");
   
-  if (gh_pair_p (dims) && gh_number_p (gh_car (dims))
-      && gh_number_p (gh_cdr (dims)))
+  if (gh_pair_p (dims) && gh_number_p (ly_car (dims))
+      && gh_number_p (ly_cdr (dims)))
     {
       staffline_p_->set_extent_callback (Grob::preset_extent_proc, Y_AXIS);
       staffline_p_->set_grob_property ("extent-Y", dims);
     }
 
   dims = get_property ("MinimumVerticalExtent");
-  if (gh_pair_p (dims) && gh_number_p (gh_car (dims))
-      && gh_number_p (gh_cdr (dims)))
+  if (gh_pair_p (dims) && gh_number_p (ly_car (dims))
+      && gh_number_p (ly_cdr (dims)))
     staffline_p_->set_grob_property ("minimum-extent-Y", dims);
 
   dims = get_property ("ExtraVerticalExtent");
-  if (gh_pair_p (dims) && gh_number_p (gh_car (dims))
-      && gh_number_p (gh_cdr (dims)))
+  if (gh_pair_p (dims) && gh_number_p (ly_car (dims))
+      && gh_number_p (ly_cdr (dims)))
     staffline_p_->set_grob_property ("extra-extent-Y", dims);
 
   Grob *  it = unsmob_grob (get_property ("currentCommandColumn"));
index c974f3fa767b453ec10012c747befb6c6d4090a3..02960f6aba86bc48e5214622d2e9c5e7356483a4 100644 (file)
@@ -13,9 +13,9 @@
 void
 Axis_group_interface::add_element (Grob*me,Grob *e)
 {
-  for (SCM ax = me->get_grob_property ("axes"); ax != SCM_EOL ; ax = gh_cdr (ax))
+  for (SCM ax = me->get_grob_property ("axes"); ax != SCM_EOL ; ax = ly_cdr (ax))
     {
-      Axis a = (Axis) gh_scm2int (gh_car (ax));
+      Axis a = (Axis) gh_scm2int (ly_car (ax));
       
       if (!e->parent_l (a))
        e->set_parent (me, a);
@@ -41,9 +41,9 @@ Interval
 Axis_group_interface::relative_group_extent (Axis a, Grob *common, SCM elts)
 {
   Interval r;
-  for (SCM s = elts; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = elts; gh_pair_p (s); s = ly_cdr (s))
     {
-      Grob * se = unsmob_grob (gh_car (s));
+      Grob * se = unsmob_grob (ly_car (s));
       Interval dims = se->extent (common, a);
       if (!dims.empty_b ())
        r.unite (dims);
@@ -60,9 +60,9 @@ Axis_group_interface::group_extent_callback (SCM element_smob, SCM scm_axis)
 
   Grob * common = (Grob*) me;
 
-  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = ly_cdr (s))
     {
-      Grob * se = unsmob_grob (gh_car (s));
+      Grob * se = unsmob_grob (ly_car (s));
       common = se->common_refpoint (common, a);
     }
 
@@ -114,9 +114,9 @@ Axis_group_interface::get_children (Grob*me)
   if (!has_interface (me))
     return childs;
   
-  for (SCM ep = me->get_grob_property ("elements"); gh_pair_p (ep); ep = gh_cdr (ep))
+  for (SCM ep = me->get_grob_property ("elements"); gh_pair_p (ep); ep = ly_cdr (ep))
     {
-      Grob* e = unsmob_grob (gh_car (ep));
+      Grob* e = unsmob_grob (ly_car (ep));
       if (e)
        childs.concat (Axis_group_interface::get_children (e));
     }
index a403c4a60ecd03fa8c5a1e7140795c8e87b77f23..21551ad5b29db6b28a3c2dc813c8a251767f9e05 100644 (file)
@@ -51,20 +51,20 @@ void
 Break_align_engraver::stop_translation_timestep ()
 {
   SCM order = get_property ("breakAlignOrder");
-  for (; gh_pair_p (order); order = gh_cdr (order))
+  for (; gh_pair_p (order); order = ly_cdr (order))
     {
-      SCM p = scm_assoc (gh_car (order), column_alist_);
+      SCM p = scm_assoc (ly_car (order), column_alist_);
       if (gh_pair_p (p))
        {
-         add_column (gh_cdr (p));
-         column_alist_ = scm_assoc_remove_x (column_alist_, gh_car (order));
+         add_column (ly_cdr (p));
+         column_alist_ = scm_assoc_remove_x (column_alist_, ly_car (order));
        }
     }
 
-  for (SCM p = column_alist_; gh_pair_p (p); p = gh_cdr (p))
+  for (SCM p = column_alist_; gh_pair_p (p); p = ly_cdr (p))
     {
-      SCM pair = gh_car (p);
-      add_column (gh_cdr (pair));
+      SCM pair = ly_car (p);
+      add_column (ly_cdr (pair));
     }
 
   
@@ -136,7 +136,7 @@ Break_align_engraver::acknowledge_grob (Grob_info inf)
 
       if (s != SCM_BOOL_F)
        {
-         Grob *e =  unsmob_grob (gh_cdr (s));
+         Grob *e =  unsmob_grob (ly_cdr (s));
          group = dynamic_cast<Item*> (e);
        }
       else
index 28b93b81848a9ff53da0784c53ca99255bd021ec..709687ce286a59c94a9ed9a2151698ffef14cc91 100644 (file)
@@ -129,7 +129,7 @@ Break_align_interface::do_alignment (Grob *me)
       SCM extra_space;
       if (e != SCM_BOOL_F)
        {
-         extra_space = gh_cdr (e);
+         extra_space = ly_cdr (e);
        }
       else
        {
@@ -139,7 +139,7 @@ Break_align_interface::do_alignment (Grob *me)
          extra_space = scm_list_n (ly_symbol2scm ("minimum-space"), gh_double2scm (0.0), SCM_UNDEFINED);
        }
 
-      SCM symbol = gh_car (extra_space);
+      SCM symbol = ly_car (extra_space);
       Real spc = gh_scm2double (gh_cadr (extra_space));
 
       dists.push (spc);
@@ -149,14 +149,14 @@ Break_align_interface::do_alignment (Grob *me)
 
 
   // skip the first sym.
-  symbol_list  = gh_cdr (scm_reverse (symbol_list));
+  symbol_list  = ly_cdr (scm_reverse (symbol_list));
   for (int i=0; i <elems.size ()-1; i++)
     {
-      elems[i]->set_grob_property (gh_car (symbol_list),
+      elems[i]->set_grob_property (ly_car (symbol_list),
                                  scm_cons (gh_double2scm (0),
                                            gh_double2scm (dists[i+1])));
 
-      symbol_list = gh_cdr (symbol_list);
+      symbol_list = ly_cdr (symbol_list);
     }
 
 
@@ -198,12 +198,12 @@ Break_align_interface::do_alignment (Grob *me)
   
   Real stretch_distance =0.;
   
-  if (gh_car (symbol_list) == ly_symbol2scm ("extra-space"))
+  if (ly_car (symbol_list) == ly_symbol2scm ("extra-space"))
     {
       spring_len += dists.top ();
       stretch_distance = dists.top ();
     }
-  else if (gh_car (symbol_list) == ly_symbol2scm ("minimum-space"))
+  else if (ly_car (symbol_list) == ly_symbol2scm ("minimum-space"))
     {
       spring_len = spring_len >? dists.top ();
       stretch_distance = spring_len;
index 7a4302a91209f7a298e1d843ebcfee07595f963c..da58ffaaf10d0ca3113814e9d0936bfb673d4aa4 100644 (file)
@@ -52,10 +52,10 @@ Chord_name_engraver::Chord_name_engraver ()
 void
 Chord_name_engraver::add_note (Note_req* n)
 {
-  SCM pitches = gh_car (chord_);
-  SCM modifiers = gh_cdr (chord_);
-  SCM inversion = modifiers == SCM_EOL ? SCM_EOL : gh_car (modifiers);
-  SCM bass = modifiers == SCM_EOL ? SCM_EOL : gh_cdr (modifiers);
+  SCM pitches = ly_car (chord_);
+  SCM modifiers = ly_cdr (chord_);
+  SCM inversion = modifiers == SCM_EOL ? SCM_EOL : ly_car (modifiers);
+  SCM bass = modifiers == SCM_EOL ? SCM_EOL : ly_cdr (modifiers);
   
   if (n->get_mus_property ("inversion") == SCM_BOOL_T)
     inversion = n->get_mus_property ("pitch");
@@ -88,13 +88,13 @@ Chord_name_engraver::acknowledge_grob (Grob_info i)
 void
 Chord_name_engraver::create_grobs ()
 {
-  if (!chord_name_p_ && gh_car (chord_) != SCM_EOL)
+  if (!chord_name_p_ && ly_car (chord_) != SCM_EOL)
     {
       chord_name_p_ = new Item (get_property ("ChordName"));
       chord_name_p_->set_grob_property ("chord", chord_);
       announce_grob (chord_name_p_, 0);
       SCM s = get_property ("chordChanges");
-      if (to_boolean (s) && gh_car (last_chord_) != SCM_EOL
+      if (to_boolean (s) && ly_car (last_chord_) != SCM_EOL
                  && gh_equal_p (chord_, last_chord_))
        chord_name_p_->set_grob_property ("begin-of-line-visible", SCM_BOOL_T);
     }
@@ -109,7 +109,7 @@ Chord_name_engraver::stop_translation_timestep ()
     }
   chord_name_p_ = 0;
 
-  if (gh_car (chord_) != SCM_EOL)
+  if (ly_car (chord_) != SCM_EOL)
     last_chord_ = chord_;
   chord_ = gh_cons (SCM_EOL, gh_cons (SCM_EOL, SCM_EOL));
 }
index d0bcf4eec24f9e928fb33b0cf278458d7b967354..27b33630743833cb93962b4d8a214be82e31112b 100644 (file)
@@ -214,7 +214,7 @@ Collision::do_shifts (Grob* me)
   Real wid
     = gh_scm2double (me->get_grob_property ("note-width"));
   
-  for (; gh_pair_p (hand); hand =gh_cdr (hand))
+  for (; gh_pair_p (hand); hand =ly_cdr (hand))
     {
       Grob * s = unsmob_grob (gh_caar (hand));
       Real amount = gh_scm2double (gh_cdar (hand));
@@ -222,7 +222,7 @@ Collision::do_shifts (Grob* me)
       s->translate_axis (amount *wid, X_AXIS);
       done.push (s);
     }
-  for (; gh_pair_p (autos); autos =gh_cdr (autos))
+  for (; gh_pair_p (autos); autos =ly_cdr (autos))
     {
       Grob * s = unsmob_grob (gh_caar (autos));
       Real amount = gh_scm2double (gh_cdar (autos));
@@ -245,9 +245,9 @@ Collision::automatic_shift (Grob *me)
   SCM  tups = SCM_EOL;
 
   SCM s = me->get_grob_property ("elements");
-  for (; gh_pair_p (s); s = gh_cdr (s))
+  for (; gh_pair_p (s); s = ly_cdr (s))
     {
-      SCM car = gh_car (s);
+      SCM car = ly_car (s);
 
       Grob * se = unsmob_grob (car);
       if (Note_column::has_interface (se))
@@ -348,9 +348,9 @@ Collision::forced_shift (Grob *me)
   SCM tups = SCM_EOL;
   
   SCM s = me->get_grob_property ("elements");
-  for (; gh_pair_p (s); s = gh_cdr (s))
+  for (; gh_pair_p (s); s = ly_cdr (s))
     {
-      Grob * se = unsmob_grob (gh_car (s));
+      Grob * se = unsmob_grob (ly_car (s));
 
       SCM force =  se->remove_grob_property ("force-hshift");
       if (gh_number_p (force))
index ce8db7f353851be59e034193cda0fd48c88c2909..93e191401083f9bf3d71d3d19dda00e7ed22c6ca 100644 (file)
@@ -27,14 +27,14 @@ Key_change_req::transpose (Pitch p)
 {
   SCM newlist = SCM_EOL;
   SCM pa = get_mus_property ("pitch-alist");
-  for (SCM s = pa; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = pa; gh_pair_p (s); s = ly_cdr (s))
     {
       SCM key = gh_caar (s);
       SCM alter = gh_cdar (s);
       if (gh_pair_p (key))
        {
-         Pitch orig (gh_scm2int (gh_car (key)),
-                             gh_scm2int (gh_cdr (key)),
+         Pitch orig (gh_scm2int (ly_car (key)),
+                             gh_scm2int (ly_cdr (key)),
                              gh_scm2int (alter));
 
          orig.transpose (p);
@@ -64,14 +64,14 @@ bool
 alist_equal_p (SCM a, SCM b)
 {
   for (SCM s = a;
-       gh_pair_p (s); s = gh_cdr (s))
+       gh_pair_p (s); s = ly_cdr (s))
     {
       SCM key = gh_caar (s);
       SCM val = gh_cdar (s);
       SCM l = scm_assoc (key, b);
 
       if (l == SCM_BOOL_F
-         || !gh_equal_p ( gh_cdr (l), val))
+         || !gh_equal_p ( ly_cdr (l), val))
 
        return false;
     }
index 4ae84934f63b51338980c4c3ce73846d1151fd66..00237602771d85107a1080250be9a542b316386d 100644 (file)
@@ -78,8 +78,8 @@ Dot_column::do_shifts (SCM l)
   Link_array<Grob> dots;
   while (gh_pair_p (l))
     {
-      dots.push (unsmob_grob (gh_car (l)));
-      l = gh_cdr (l);
+      dots.push (unsmob_grob (ly_car (l)));
+      l = ly_cdr (l);
     }
   
   dots.sort (compare_position);
index 1a0273850db88f4fbd81aeb6569c7afea6513237..6476466774e51a8398660487d654f19361705e4c 100644 (file)
@@ -94,7 +94,7 @@ IMPLEMENT_SIMPLE_SMOBS (Duration);
 int
 Duration::print_smob (SCM s, SCM port, scm_print_state *)
 {
-  Duration  *r = (Duration *) gh_cdr (s);
+  Duration  *r = (Duration *) ly_cdr (s);
      
   scm_puts ("#<Duration ", port);
   scm_display (ly_str02scm (r->str ().ch_C ()), port);
@@ -106,8 +106,8 @@ Duration::print_smob (SCM s, SCM port, scm_print_state *)
 SCM
 Duration::equal_p (SCM a , SCM b)
 {
-  Duration  *p = (Duration *) gh_cdr (a);
-  Duration  *q = (Duration *) gh_cdr (b);  
+  Duration  *p = (Duration *) ly_cdr (a);
+  Duration  *q = (Duration *) ly_cdr (b);  
 
   bool eq = p->dots_i_ == q->dots_i_
     && p->durlog_i_ == q->durlog_i_
index f805428f0c8e6ed9bc87566d84be7029e376ac0d..0b5d1b73b06a1a04450268535c683eaa4f2f6255 100644 (file)
@@ -99,8 +99,8 @@ Dynamic_performer::create_audio_elements ()
          if (gh_pair_p (s))
            {
              Interval iv;
-             iv[MIN] = gh_scm2double (gh_car (s));
-             iv[MAX] = gh_scm2double (gh_cdr (s));
+             iv[MIN] = gh_scm2double (ly_car (s));
+             iv[MAX] = gh_scm2double (ly_cdr (s));
              volume = iv[MIN] + iv.length () * volume;
            }
        }
index 0a47bb8420dec903fce1706a8ce937063f42f409..37516251991415672840f26ef034660b54eb5403 100644 (file)
@@ -28,9 +28,9 @@ void
 Engraver_group_engraver::create_grobs ()
 {
 
-  for (SCM p = simple_trans_list_; gh_pair_p (p); p = gh_cdr (p))
+  for (SCM p = simple_trans_list_; gh_pair_p (p); p = ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       Engraver * eng = dynamic_cast<Engraver*> (t);
       if (eng)
        eng->create_grobs ();
@@ -43,9 +43,9 @@ Engraver_group_engraver::acknowledge_grobs ()
   for (int j =0; j < announce_info_arr_.size (); j++)
     {
       Grob_info info = announce_info_arr_[j];
-      for (SCM p = simple_trans_list_; gh_pair_p (p); p = gh_cdr (p))
+      for (SCM p = simple_trans_list_; gh_pair_p (p); p = ly_cdr (p))
        {
-         Translator * t = unsmob_translator (gh_car (p));
+         Translator * t = unsmob_translator (ly_car (p));
          Engraver * eng = dynamic_cast<Engraver*> (t);
          if (eng && eng!= info.origin_trans_l_)
            eng->acknowledge_grob (info);
@@ -56,9 +56,9 @@ Engraver_group_engraver::acknowledge_grobs ()
 void
 Engraver_group_engraver::do_announces ()
 {
-  for (SCM p = trans_group_list_; gh_pair_p (p); p =gh_cdr (p))
+  for (SCM p = trans_group_list_; gh_pair_p (p); p =ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       dynamic_cast<Engraver_group_engraver*> (t)->do_announces ();
     }
 
@@ -80,17 +80,17 @@ Engraver_group_engraver::do_announces ()
 void
 Engraver_group_engraver::process_music ()
 {
-   for (SCM p = simple_trans_list_; gh_pair_p (p); p =gh_cdr (p))
+   for (SCM p = simple_trans_list_; gh_pair_p (p); p =ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       Engraver * eng = dynamic_cast<Engraver*> (t);
 
       if (eng)
        eng->process_music ();
     }
-   for (SCM p = trans_group_list_; gh_pair_p (p); p =gh_cdr (p))
+   for (SCM p = trans_group_list_; gh_pair_p (p); p =ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       Engraver*eng = dynamic_cast<Engraver*> (t);
       if (eng)
        eng->process_music ();
index 04112971d318513083b415e3f3373c949da1f243..78e5c2fa04d5b9132c05b47bee55128833e97882 100644 (file)
@@ -66,6 +66,8 @@ Gourlay_breaking::do_solve () const
   optimal_paths[0] = first_node; 
   int break_idx=1;
 
+  Real worst_force = 0.0;
+  
   for (; break_idx< breaks.size (); break_idx++) 
     {
       /*
@@ -94,13 +96,26 @@ Gourlay_breaking::do_solve () const
          sp->solve (&cp);
          delete sp;
 
+         if (cp.force_f_ > worst_force)
+           worst_force = cp.force_f_;
+
+         /*
+           We remember this solution as a "should always work
+           solution", in case everything fucks up.  */
          if (start_idx == break_idx - 1)
-           backup_sol = cp;    // in case everything fucks up
+           backup_sol = cp;
          if (!cp.satisfies_constraints_b_)
-           break;
-
+           {
+             /*
+               If it doesn't satisfy constraints, we make this one
+               really unattractive.
+             */
+             cp.force_f_ += worst_force;
+             cp.force_f_ *= 10;        
+           }
          
          Real this_demerits;
+
          if (optimal_paths[start_idx].demerits_f_ >= infinity_f)
            this_demerits = infinity_f;
          else
@@ -113,6 +128,13 @@ Gourlay_breaking::do_solve () const
              minimal_sol = cp;
              minimal_demerits = this_demerits;
            }
+
+         /*
+           we couldn't satisfy the constraints, this won't get better
+           if we add more columns, so we get on with the next one
+         */
+         if (!cp.satisfies_constraints_b_)
+           break ; 
        }
 
       int prev =break_idx - 1;
@@ -156,9 +178,14 @@ Gourlay_breaking::do_solve () const
   if (optimal_paths.top ().demerits_f_ >= infinity_f)
     warning (_ ("No feasible line breaking found"));
   
-  for (int i= final_breaks.size (); i--;) 
-    lines.push (optimal_paths[final_breaks[i]].line_config_);
-  
+  for (int i= final_breaks.size (); i--;)
+    {
+      Column_x_positions cp (optimal_paths[final_breaks[i]].line_config_);
+      
+      lines.push (cp);
+      if(!cp.satisfies_constraints_b_)
+       warning ("Could not find line breaking that satisfies constraints.");
+    }
   return lines;
 }
 
index bfe3cafcdcdb0d0a1e53078afc6c854230b53b96..10ba29c8e849ddb632188f91357f5d40f0dd3120 100644 (file)
@@ -10,7 +10,7 @@
 #ifndef PROTECTED_SCM_HH
 #define PROTECTED_SCM_HH
 
-#include <guile/gh.h>
+#include <libguile.h>
 
 /*
   Mix GUILE GC with C++ ctors and dtors. 
index eeed9d86ccaddd7a928a78a13eaacc76a39bc48c..6fae06efb950b74d174e430202b8a601ffec3969 100644 (file)
@@ -162,8 +162,8 @@ Item::handle_prebroken_dependencies ()
     {
       SCM args = scm_list_n (gh_int2scm (break_status_dir ()), SCM_UNDEFINED);
       SCM result = gh_apply (vis, args);
-      bool trans = gh_scm2bool (gh_car (result));
-      bool empty = gh_scm2bool (gh_cdr (result));
+      bool trans = gh_scm2bool (ly_car (result));
+      bool empty = gh_scm2bool (ly_cdr (result));
       
       if (empty && trans)
        suicide ();
index 8dc62ea994507c898853b3cdf4cb0f76c75d568d..37b215fbd69ca3e7d85164e9bbf24c83a073d13e 100644 (file)
@@ -156,17 +156,17 @@ Key_engraver::read_req (Key_change_req const * r)
   SCM n = scm_list_copy (p);
   SCM accs = SCM_EOL;
   for (SCM s = get_property ("keyAccidentalOrder");
-       gh_pair_p (s); s = gh_cdr (s))
+       gh_pair_p (s); s = ly_cdr (s))
     {
-      if (gh_pair_p (scm_member (gh_car (s), n)))
+      if (gh_pair_p (scm_member (ly_car (s), n)))
        {
-         accs = gh_cons (gh_car (s), accs);
-         n = scm_delete_x (gh_car (s), n);
+         accs = gh_cons (ly_car (s), accs);
+         n = scm_delete_x (ly_car (s), n);
        }
     }
-  for (SCM s = n ; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = n ; gh_pair_p (s); s = ly_cdr (s))
     if (gh_scm2int (gh_cdar (s)))
-      accs = gh_cons (gh_car (s), accs);
+      accs = gh_cons (ly_car (s), accs);
 
   old_accs_ = get_property ("keySignature");
   daddy_trans_l_->set_property ("keySignature", accs);
index b66cd6b490ce5fbe56b2a0925d36ac3ad2b15c0d..713ae61e27ead6957a5200bc5a599a87c90167fb 100644 (file)
@@ -37,7 +37,7 @@ int
 alteration_pos  (SCM what, int alter, int c0p)
 {
   if (gh_pair_p (what))
-    return gh_scm2int (gh_car (what)) * 7 + gh_scm2int (gh_cdr (what)) + c0p;
+    return gh_scm2int (ly_car (what)) * 7 + gh_scm2int (ly_cdr (what)) + c0p;
 
   int p = gh_scm2int (what);
 
@@ -101,7 +101,7 @@ Key_item::brew_molecule (SCM smob)
   */
   int c0p = gh_scm2int (me->get_grob_property ("c0-position"));
 
-  for (SCM s = newas; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = newas; gh_pair_p (s); s = ly_cdr (s))
     {
       SCM what = gh_caar (s);
       int alter = gh_scm2int (gh_cdar (s));
@@ -133,11 +133,11 @@ Key_item::brew_molecule (SCM smob)
        natural=Font_interface::get_default_font (me)->
            find_by_name (String ("accidentals-") + style + String ("0"));
       
-      for (; gh_pair_p (old); old = gh_cdr (old))
+      for (; gh_pair_p (old); old = ly_cdr (old))
         {
          SCM found = scm_assoc (gh_caar (old), newas);
          if (found == SCM_BOOL_F
-             || gh_cdr (found) != gh_cdar (old))
+             || ly_cdr (found) != gh_cdar (old))
            {
              SCM what = gh_caar (old);
              int alter = 0;
index b44ae5ef9dadaac6932dd70023f51b9afa178c0e..e07648fc32acefee31c836a4823fc618abf50b66 100644 (file)
@@ -547,7 +547,7 @@ My_lily_lexer::scan_escaped_word (String str)
                
                if (gh_pair_p (pitch))
                {
-                       yylval.scm = gh_cdr (pitch);
+                       yylval.scm = ly_cdr (pitch);
                        return NOTENAME_PITCH;
                }
        }
@@ -566,11 +566,11 @@ My_lily_lexer::scan_bare_word (String str)
        if ((YYSTATE == notes) || (YYSTATE == chords)) {
                SCM pitch = scm_hashq_get_handle (pitchname_tab_, sym);
                if (gh_pair_p (pitch)) {
-                   yylval.scm = gh_cdr (pitch);
+                   yylval.scm = ly_cdr (pitch);
                     return (YYSTATE == notes) ? NOTENAME_PITCH : TONICNAME_PITCH;
                } else if ((pitch = scm_hashq_get_handle (chordmodifier_tab_, sym))!= SCM_BOOL_F)
                {
-                   yylval.scm = gh_cdr (pitch);
+                   yylval.scm = ly_cdr (pitch);
                    return CHORDMODIFIER_PITCH;
                }
        }
index ed71c533773a215e1f84ec607fced5b9577bc72a..274883c15a585e4a797683b9d406323aad1b3b6c 100644 (file)
@@ -95,7 +95,7 @@ Local_key_engraver::create_grobs ()
          SCM prev = scm_assoc (gh_cons (gh_int2scm (o), gh_int2scm (n)), localsig);
          if (prev == SCM_BOOL_F)
            prev = scm_assoc (gh_int2scm (n), localsig);
-         SCM prev_acc = (prev == SCM_BOOL_F) ? gh_int2scm (0) : gh_cdr (prev);
+         SCM prev_acc = (prev == SCM_BOOL_F) ? gh_int2scm (0) : ly_cdr (prev);
          bool different = !gh_equal_p (prev_acc , gh_int2scm (a));
          int p = gh_number_p (prev_acc) ? gh_scm2int (prev_acc) : 0;
 
index 90a092ebdd57092c50ac003ffd3fdaca46212ff5..a335ca7f61b8f6f8e26f2bed3241367e6621d8db 100644 (file)
@@ -110,7 +110,7 @@ Lyric_phrasing_engraver::lookup_context_id (const String &context_id)
       // (key . ((alist_entry . old_entry) . previous_entry))
       if (to_boolean (gh_cdadr (s))) { // it's an old entry ... make it a new one
        SCM val = gh_cons (gh_cons (gh_caadr (s), SCM_BOOL_F), gh_cddr (s)); 
-       voice_alist_ = scm_assoc_set_x (voice_alist_, gh_car (s), val);
+       voice_alist_ = scm_assoc_set_x (voice_alist_, ly_car (s), val);
        return unsmob_voice_entry (gh_caar (val));
       }
       else { // the entry is current ... return it.
@@ -265,7 +265,7 @@ void Lyric_phrasing_engraver::create_grobs ()
   SCM sp = get_property ("phrasingPunctuation");
   punc = gh_string_p (sp) ? ly_scm2string (sp) : ".,;:?!\""; 
   
-  for (SCM v=voice_alist_; gh_pair_p (v); v = gh_cdr (v)) {
+  for (SCM v=voice_alist_; gh_pair_p (v); v = ly_cdr (v)) {
     SCM v_entry = gh_cdar (v);
     // ((current . oldflag) . previous)
     if (!to_boolean (gh_cdar (v_entry))) { // not an old entry left over from a prior note ...
@@ -281,7 +281,7 @@ void Lyric_phrasing_engraver::create_grobs ()
       if (entry->get_melisma ()) {
        if (entry->lyric_count ())
          warning (_ ("Huh? Melismatic note found to have associated lyrics."));
-       SCM previous_scm = gh_cdr (v_entry);
+       SCM previous_scm = ly_cdr (v_entry);
        if (previous_scm != SCM_EOL) {
          Syllable_group *previous = unsmob_voice_entry (previous_scm);
          if (previous->lyric_count ())
@@ -296,7 +296,7 @@ void Lyric_phrasing_engraver::create_grobs ()
 void
 Lyric_phrasing_engraver::stop_translation_timestep ()
 {
-  for (SCM v=voice_alist_; gh_pair_p (v); v = gh_cdr (v)) {
+  for (SCM v=voice_alist_; gh_pair_p (v); v = ly_cdr (v)) {
     SCM entry_scm = gh_cdar (v);
     // ((alist_entry . entry_is_old) . previous_entry)
     Syllable_group * entry = unsmob_voice_entry (gh_caar (entry_scm));
@@ -304,9 +304,9 @@ Lyric_phrasing_engraver::stop_translation_timestep ()
     // set previous_entry, set entry_is_old, and resave it to alist_
     // but only change if this current was not old.
     if (! to_boolean (gh_cdar (entry_scm))) { 
-      Syllable_group * previous_entry = unsmob_voice_entry (gh_cdr (entry_scm));
+      Syllable_group * previous_entry = unsmob_voice_entry (ly_cdr (entry_scm));
       previous_entry->copy (entry);
-      entry_scm = gh_cons (gh_cons (gh_caar (entry_scm), SCM_BOOL_T), gh_cdr (entry_scm));
+      entry_scm = gh_cons (gh_cons (gh_caar (entry_scm), SCM_BOOL_T), ly_cdr (entry_scm));
       voice_alist_ = scm_assoc_set_x (voice_alist_, gh_caar (v), entry_scm);
     }
     entry->next_lyric ();
index dfb402ee41aa66bbd3e47ed7d4187058028f595e..226d054d7819a809fee7624a945903b0823b941f 100644 (file)
@@ -309,7 +309,7 @@ format_to_ext (String format)
 }
 
 void
-main_prog (int, char**)
+main_prog (void * closure, int, char**)
 {
   /*
     need to do this first. Engravers use lily.scm contents.
@@ -324,7 +324,7 @@ main_prog (int, char**)
   all_fonts_global_p = new All_font_metrics (global_path.str ());
 
   init_scheme_code_string += ")";
-  gh_eval_str ((char *)init_scheme_code_string.ch_C());
+  scm_c_eval_string ((char *)init_scheme_code_string.ch_C());
   
   int p=0;
   const char *arg  = oparser_p_static->get_next_arg ();
@@ -486,9 +486,9 @@ main (int argc, char **argv)
   identify (&cerr);
 
 #ifdef WINNT
-  gh_enter (argc, argv, main_prog);
+  scm_boot_guile (argc, argv, main_prog, 0);
 #else
-  gh_enter (argc, argv, (void (*) (int, char**))main_prog);
+  scm_boot_guile (argc, argv, (void (*) (void*, int, char**))main_prog, 0);
 #endif
 
   return 0;                    // unreachable
index e75b6880f6958acc8319de3175963ddd6f2f7eb8..91eea12f126b99fda10794637e077e0dab5a6884 100644 (file)
@@ -35,7 +35,7 @@ Moment::smobbed_copy () const
 int
 Moment::print_smob (SCM s, SCM port, scm_print_state *)
 {
-  Moment  *r = (Moment *) gh_cdr (s);
+  Moment  *r = (Moment *) ly_cdr (s);
      
   scm_puts ("#<Mom ", port);
   String str (r->str ());
index 1df990d42b5aca513341b4a765c1c78ebded1b78..207913331444ec1b22a25159bd9934bb61924260 100644 (file)
@@ -23,7 +23,7 @@ Music_sequence::truncate (int k)
     {
       SCM s = l;
       k--;
-      for (; gh_pair_p (s) && k--; s = gh_cdr (s))
+      for (; gh_pair_p (s) && k--; s = ly_cdr (s))
        ;
 
       if (gh_pair_p (s))
@@ -59,8 +59,8 @@ Music_sequence::Music_sequence (SCM l)
 void
 Music_sequence::transpose (Pitch rq)
 {
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
-    unsmob_music (gh_car (s))->transpose (rq);    
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
+    unsmob_music (ly_car (s))->transpose (rq);    
 }
 
 
@@ -72,9 +72,9 @@ Music_sequence::cumulative_length () const
   Moment cumulative;
   
   Moment last_len ; 
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      Moment l = unsmob_music (gh_car (s))->length_mom ();
+      Moment l = unsmob_music (ly_car (s))->length_mom ();
       if (last_len.grace_part_ && l.main_part_)
        {
          last_len.grace_part_ = Rational (0);
@@ -100,9 +100,9 @@ Moment
 Music_sequence::maximum_length () const
 {
   Moment dur = 0;
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      Music * m = unsmob_music (gh_car (s));
+      Music * m = unsmob_music (ly_car (s));
       Moment l = m->length_mom ();
       dur = dur >? l;
     }
@@ -122,9 +122,9 @@ Music_sequence::do_relative_octave (Pitch p, bool ret_first)
   int count=0;
 
   Pitch last = p;
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      last = unsmob_music (gh_car (s))->to_relative_octave (last);
+      last = unsmob_music (ly_car (s))->to_relative_octave (last);
       if (!count ++)
        retval = last;
     }
@@ -138,8 +138,8 @@ Music_sequence::do_relative_octave (Pitch p, bool ret_first)
 void
 Music_sequence::compress (Moment m)
 {
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
-    unsmob_music (gh_car (s))->compress (m);
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
+    unsmob_music (ly_car (s))->compress (m);
 }
 
 ADD_MUSIC (Music_sequence);
@@ -155,9 +155,9 @@ Music_sequence::minimum_start () const
 {
   Moment m;
   
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      m = m <? unsmob_music (gh_car (s))->start_mom ();
+      m = m <? unsmob_music (ly_car (s))->start_mom ();
     }
   return m;
 }
@@ -167,9 +167,9 @@ Music_sequence::first_start () const
 {
   Moment m;
   
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      Music * mus = unsmob_music (gh_car (s));
+      Music * mus = unsmob_music (ly_car (s));
       Moment l = mus->length_mom ();
       Moment s = mus->start_mom ();
       if (l.to_bool () || s.to_bool ())
index edb75a4899ab030f60a4ae6bbbf59e84bb16bb19..ca3f8fe813c39dc17b5a106ce977123eb7a8ea6b 100644 (file)
@@ -24,7 +24,7 @@ ly_deep_mus_copy (SCM m)
     }
   else if (gh_pair_p (m))
     {
-      return gh_cons (ly_deep_mus_copy (gh_car (m)), ly_deep_mus_copy (gh_cdr (m)));
+      return gh_cons (ly_deep_mus_copy (ly_car (m)), ly_deep_mus_copy (ly_cdr (m)));
     }
   else
     return m;
@@ -99,7 +99,7 @@ Music::start_mom () const
 void
 print_alist (SCM a, SCM port)
 {
-  for (SCM s = a; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = a; gh_pair_p (s); s = ly_cdr (s))
     {
       scm_display (gh_caar (s), port);
       scm_puts (" = ", port); 
@@ -153,10 +153,10 @@ Music::get_mus_property (SCM sym) const
 {
   SCM s = scm_sloppy_assq (sym, mutable_property_alist_);
   if (s != SCM_BOOL_F)
-    return gh_cdr (s);
+    return ly_cdr (s);
 
   s = scm_sloppy_assq (sym, immutable_property_alist_);
-  return (s == SCM_BOOL_F) ? SCM_EOL : gh_cdr (s); 
+  return (s == SCM_BOOL_F) ? SCM_EOL : ly_cdr (s); 
 }
 
 /*
index 4a44f5919a8f814821e23923db12fd8f430bdaa2..9e699a5e82ca651456144342d38eb60d9ac93d8e 100644 (file)
@@ -120,7 +120,7 @@ My_lily_parser::paper_description ()
 
   SCM al = p->translator_p_dict_p_->to_alist ();
   SCM l = SCM_EOL;
-  for (SCM s = al ; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = al ; gh_pair_p (s); s = ly_cdr (s))
     {
       Translator_def * td = unsmob_translator_def (gh_cdar (s));
       l = gh_cons (gh_cons (gh_caar (s), td->to_alist ()),  l);
index 760651efeec8a29367f88fd25e08c016947cc29e..3daabc0672f73a830a0b05ca5488b8c8727c1251 100644 (file)
@@ -144,7 +144,7 @@ cout << "params for cols " << Paper_column::rank_i (l) << " " << Paper_column::r
            access to the note head.
 
          */
-         for (SCM s = seq; gh_pair_p (s); s = gh_cdr (s))
+         for (SCM s = seq; gh_pair_p (s); s = ly_cdr (s))
            {
              Grob *lm = unsmob_grob (gh_caar (s));
              Grob *rm = unsmob_grob (gh_cdar (s));
@@ -189,7 +189,7 @@ New_spacing_spanner::breakable_column_spacing (Item* l, Item *r)
   Real break_dist = 0.0;
   SCM espace = l->get_grob_property ("extra-space");
   if (gh_pair_p (espace))
-    break_dist += gh_scm2double (gh_cdr (espace));
+    break_dist += gh_scm2double (ly_cdr (espace));
 
   if (!break_dist)
     break_dist = 1.0;
@@ -199,7 +199,7 @@ New_spacing_spanner::breakable_column_spacing (Item* l, Item *r)
   // todo: naming of "distance"
   espace = l->get_grob_property ("stretch-distance");
   if (gh_pair_p (espace))
-    break_stretch += gh_scm2double (gh_cdr (espace));
+    break_stretch += gh_scm2double (ly_cdr (espace));
 
   if (!break_stretch)
     break_stretch = 1.0;
@@ -471,8 +471,8 @@ New_spacing_spanner::stem_dir_correction (Grob*me, Grob*l, Grob*r)
   if (scm_ilength (dl) != 1 || scm_ilength (dr) != 1)
     return 0.;
 
-  dl = gh_car (dl);
-  dr = gh_car (dr);
+  dl = ly_car (dl);
+  dr = ly_car (dr);
 
   assert (gh_number_p (dl) && gh_number_p (dr));
   int d1 = gh_scm2int (dl);
index 6cf77b6d5ec6a210f1e0ac0f1d625802cf8497d3..9a0cdf8a9bc11498cb4c59a0af2b4fc42a77343c 100644 (file)
@@ -59,9 +59,9 @@ Note_column::head_positions_interval (Grob *me)
   iv.set_empty ();
 
   SCM h = me->get_grob_property ("note-heads");
-  for (; gh_pair_p (h); h = gh_cdr (h))
+  for (; gh_pair_p (h); h = ly_cdr (h))
     {
-      Grob *se = unsmob_grob (gh_car (h));
+      Grob *se = unsmob_grob (ly_car (h));
       
       int j = int (Staff_symbol_referencer::position_f (se));
       iv.unite (Slice (j,j));
index 69d16f6c6714251134fc8333edb97a9d757760e7..3877dad1d0e224bdd838126bf2bf9f4282889421 100644 (file)
@@ -129,9 +129,13 @@ void
 Note_heads_engraver::start_translation_timestep ()
 {
   
-  /* TODO:make this settable?
+  /*
+    TODO: make this settable?
+
+    TODO: what if someone wants a line break in a grace note section??
    */
-  if (note_end_mom_ > now_mom ())
+  //  if (note_end_mom_ > now_mom ())  
+  if (note_end_mom_.main_part_ > now_mom ().main_part_)
     {
       Score_engraver * e = 0;
       Translator * t  =  daddy_grav_l ();
index 0fcdd18fc7dae0d25dd8026b896b3f4f1bdb76dd..84bb78ff44cbe60bbdcda2b80dde26b1d00fabf1 100644 (file)
@@ -128,7 +128,7 @@ Paper_def::find_font (SCM fn, Real m)
   SCM met = scm_assoc (key, scaled_fonts_);
 
   if (gh_pair_p (met))
-    return unsmob_metrics (gh_cdr (met));
+    return unsmob_metrics (ly_cdr (met));
 
   SCM ssc;
   if (scope_p_->try_retrieve (ly_symbol2scm ("outputscale"), &ssc))
@@ -155,7 +155,7 @@ Paper_def::font_descriptions ()const
 
   
   SCM l = SCM_EOL;
-  for (SCM s = scaled_fonts_; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = scaled_fonts_; gh_pair_p (s); s = ly_cdr (s))
     {
       SCM desc = gh_caar (s);
       SCM mdesc = unsmob_metrics (gh_cdar (s))->description_;
index 65596d0ad3be73518c432e0e0bc371fbfa816341..bd18cb347bffefece896bd24ddcf5a47cdbc4428 100644 (file)
@@ -126,9 +126,9 @@ get_music_info (Moment m, Music_iterator* iter, SCM *pitches, SCM *durations)
 {
   if (iter->ok ())
     {
-      for (SCM i = iter->get_music (m); gh_pair_p (i); i = gh_cdr (i))
+      for (SCM i = iter->get_music (m); gh_pair_p (i); i = ly_cdr (i))
        {
-         Music *m = unsmob_music (gh_car (i));
+         Music *m = unsmob_music (ly_car (i));
          if (Melodic_req *r = dynamic_cast<Melodic_req *> (m))
            *pitches = gh_cons (r->get_mus_property ("pitch"), *pitches);
          if (Rhythmic_req *r = dynamic_cast<Rhythmic_req *> (m))
@@ -152,8 +152,8 @@ Part_combine_music_iterator::get_state (Moment)
   if (!gh_pair_p (s))
     return state;
 
-  Moment change_mom = *unsmob_moment (gh_car (s));
-  Moment diff_mom = *unsmob_moment (gh_cdr (s));
+  Moment change_mom = *unsmob_moment (ly_car (s));
+  Moment diff_mom = *unsmob_moment (ly_cdr (s));
   
   Moment now = pending_moment ();
 
@@ -206,22 +206,22 @@ Part_combine_music_iterator::get_state (Moment)
              scm_sort_list_x (second_pitches,
                               scm_primitive_eval (ly_str02scm ("Pitch::less_p")));
 
-             interval = gh_int2scm (unsmob_pitch (gh_car (first_pitches))->steps ()
-                                    - unsmob_pitch (gh_car (scm_last_pair (second_pitches)))->steps ());
+             interval = gh_int2scm (unsmob_pitch (ly_car (first_pitches))->steps ()
+                                    - unsmob_pitch (ly_car (scm_last_pair (second_pitches)))->steps ());
            }
          
          if (first_durations != SCM_EOL)
            {
              scm_sort_list_x (first_durations,
                               scm_primitive_eval (ly_str02scm ("Duration::less_p")));
-             first_mom += unsmob_duration (gh_car (first_durations))->length_mom ();
+             first_mom += unsmob_duration (ly_car (first_durations))->length_mom ();
            }
          
          if (second_durations != SCM_EOL)
            {
              scm_sort_list_x (second_durations,
                               scm_primitive_eval (ly_str02scm ("Duration::less_p")));
-             second_mom += unsmob_duration (gh_car (second_durations))->length_mom ();
+             second_mom += unsmob_duration (ly_car (second_durations))->length_mom ();
            }
          
          if (first_pitches != SCM_EOL && second_pitches == SCM_EOL
@@ -280,10 +280,10 @@ Part_combine_music_iterator::get_state (Moment)
              SCM s = first_translator->get_property (ly_symbol2scm ("splitInterval"));
              int i = gh_scm2int (interval);
              if (gh_pair_p (s)
-                 && gh_number_p (gh_car (s))
-                 && gh_number_p (gh_cdr (s))
-                 && i >= gh_scm2int (gh_car (s))
-                 && i <= gh_scm2int (gh_cdr (s)))
+                 && gh_number_p (ly_car (s))
+                 && gh_number_p (ly_cdr (s))
+                 && i >= gh_scm2int (ly_car (s))
+                 && i <= gh_scm2int (ly_cdr (s)))
                {
                  if (! (state & ~ (SPLIT_INTERVAL | UNIRHYTHM | UNISON)))
                    state |= SPLIT_INTERVAL;
index 96e25b97d8755e25fd0da72cf1ab606a753d63f1..c13d65505c58a6f8d780d4743332ca353306c73f 100644 (file)
@@ -28,9 +28,9 @@ Performer_group_performer::announce_element (Audio_element_info info)
 void
 Performer_group_performer::create_audio_elements ()
 {
-  for (SCM p = simple_trans_list_; gh_pair_p (p); p = gh_cdr (p))
+  for (SCM p = simple_trans_list_; gh_pair_p (p); p = ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       Performer * eng = dynamic_cast<Performer*> (t);
       if (eng)
        eng->create_audio_elements ();
@@ -44,9 +44,9 @@ Performer_group_performer::acknowledge_audio_elements ()
     {
       Audio_element_info info = announce_info_arr_[j];
 
-      for (SCM p = simple_trans_list_; gh_pair_p (p); p = gh_cdr (p))
+      for (SCM p = simple_trans_list_; gh_pair_p (p); p = ly_cdr (p))
        {
-         Translator * t = unsmob_translator (gh_car (p));
+         Translator * t = unsmob_translator (ly_car (p));
          Performer * eng = dynamic_cast<Performer*> (t);
          if (eng && eng!= info.origin_trans_l_)
            eng->acknowledge_audio_element (info);
@@ -57,9 +57,9 @@ Performer_group_performer::acknowledge_audio_elements ()
 void
 Performer_group_performer::do_announces ()
 {
-  for (SCM p = trans_group_list_; gh_pair_p (p); p =gh_cdr (p))
+  for (SCM p = trans_group_list_; gh_pair_p (p); p =ly_cdr (p))
     {
-      Translator * t = unsmob_translator (gh_car (p));
+      Translator * t = unsmob_translator (ly_car (p));
       dynamic_cast<Performer_group_performer*> (t)->do_announces ();
     }
 
index 0a57fa762c072744bec6deeb43c02c3fa4fcbbb2..df3238a6355a400aedcd77447210bcc9d492055a 100644 (file)
@@ -162,7 +162,7 @@ Piano_pedal_engraver::create_grobs ()
       else if (p->req_l_drul_[START])
        {
          p->start_req_l_ = p->req_l_drul_[START];
-         s = gh_car (strings);
+         s = ly_car (strings);
        }
 
       if (gh_string_p (s))
index aa7774debce072ce1de914f0da4af462446dfc61..54d876cfa7080bee983b2e89022d452e0bb5fbfc 100644 (file)
@@ -253,7 +253,7 @@ IMPLEMENT_SIMPLE_SMOBS (Pitch);
 int
 Pitch::print_smob (SCM s, SCM port, scm_print_state *)
 {
-  Pitch  *r = (Pitch *) gh_cdr (s);
+  Pitch  *r = (Pitch *) ly_cdr (s);
      
   scm_puts ("#<Pitch ", port);
   scm_display (ly_str02scm (r->str ().ch_C ()), port);
@@ -265,8 +265,8 @@ Pitch::print_smob (SCM s, SCM port, scm_print_state *)
 SCM
 Pitch::equal_p (SCM a , SCM b)
 {
-  Pitch  *p = (Pitch *) gh_cdr (a);
-  Pitch  *q = (Pitch *) gh_cdr (b);  
+  Pitch  *p = (Pitch *) ly_cdr (a);
+  Pitch  *q = (Pitch *) ly_cdr (b);  
 
   bool eq = p->notename_i_ == q->notename_i_
     && p->octave_i_ == q->octave_i_
index 62096373140702908231a55dcbfb55a3010d22a0..044f9613c4d459d7f110613362187144cf4f2341 100644 (file)
@@ -60,10 +60,10 @@ Property_engraver::initialize ()
   prop_dict_ = new Scheme_hash_table;
 
   SCM plist = get_property (ly_symbol2scm ("Generic_property_list"));
-  for (; gh_pair_p (plist); plist = gh_cdr (plist))
+  for (; gh_pair_p (plist); plist = ly_cdr (plist))
     {
-      SCM elt_props = gh_car (plist);
-      prop_dict_->set (gh_car (elt_props), gh_cdr (elt_props));
+      SCM elt_props = ly_car (plist);
+      prop_dict_->set (ly_car (elt_props), ly_cdr (elt_props));
     }
 }
 
@@ -72,9 +72,9 @@ Property_engraver::acknowledge_grob (Grob_info i)
 {
  SCM ifs = i.elem_l_->get_grob_property ("interfaces");
   SCM props;
-  for (; gh_pair_p (ifs); ifs = gh_cdr (ifs))
+  for (; gh_pair_p (ifs); ifs = ly_cdr (ifs))
     {      
-      if (prop_dict_->try_retrieve (gh_car (ifs), &props))
+      if (prop_dict_->try_retrieve (ly_car (ifs), &props))
        {
          apply_properties (props,i.elem_l_, i.origin_trans_l_->daddy_trans_l_);
        }
@@ -90,7 +90,7 @@ Property_engraver::acknowledge_grob (Grob_info i)
 void
 Property_engraver::apply_properties (SCM p, Grob *e, Translator_group*origin)
 {
-  for (; gh_pair_p (p); p = gh_cdr (p))
+  for (; gh_pair_p (p); p = ly_cdr (p))
     {
       /*
        Try each property in order; earlier descriptions take
@@ -98,8 +98,8 @@ Property_engraver::apply_properties (SCM p, Grob *e, Translator_group*origin)
        they're already set.
       */
       
-      SCM entry = gh_car (p);
-      SCM prop_sym = gh_car (entry);
+      SCM entry = ly_car (p);
+      SCM prop_sym = ly_car (entry);
       SCM type_p   = gh_cadr (entry);
       SCM elt_prop_sym = gh_caddr (entry);
 
@@ -121,7 +121,7 @@ Property_engraver::apply_properties (SCM p, Grob *e, Translator_group*origin)
          warning (_f ("`%s' is deprecated.  Use\n \\property %s.%s \\override #'%s = #%s",
                       ly_symbol2string (prop_sym).ch_C (),
                       origin->type_str_.ch_C (),
-                      ly_scm2string (gh_cdr (name)).ch_C (),
+                      ly_scm2string (ly_cdr (name)).ch_C (),
                       ly_symbol2string (elt_prop_sym).ch_C (),
                       ly_scm2string (ly_write2scm (val)).ch_C ()));
        }
index d4891d97ac69d438a71769968f306066fc3057d3..a134dad1ee0444c91c23269986872fb6d5cf6a2f 100644 (file)
@@ -75,14 +75,14 @@ Repeat_acknowledge_engraver::process_music ()
   bool volta_found = false;
   while (gh_pair_p (cs))
     {
-      SCM command = gh_car (cs);
+      SCM command = ly_car (cs);
       if (command == ly_symbol2scm ("start-repeat"))
        start = true;
       else if (command == ly_symbol2scm ("end-repeat"))
        end = true;
-      else if (gh_pair_p (command) && gh_car (command) == ly_symbol2scm ("volta"))
+      else if (gh_pair_p (command) && ly_car (command) == ly_symbol2scm ("volta"))
        volta_found = true;
-      cs = gh_cdr (cs);      
+      cs = ly_cdr (cs);      
     }
 
   if (start && end)
index 3935cc3a1d4dc89cbfdb884467d018d8ffc108ab..13471ed2562cf736330836735f8484d7749363af 100644 (file)
@@ -40,8 +40,8 @@ Repeated_music::to_relative_octave (Pitch p)
 
   Pitch last = p ; 
   if (alternatives ())
-    for (SCM s = alternatives ()->music_list (); gh_pair_p (s);  s = gh_cdr (s))
-      unsmob_music (gh_car (s))->to_relative_octave (p);
+    for (SCM s = alternatives ()->music_list (); gh_pair_p (s);  s = ly_cdr (s))
+      unsmob_music (ly_car (s))->to_relative_octave (p);
      
 
   return last;
@@ -82,10 +82,10 @@ Repeated_music::alternatives_length_mom (bool fold) const
   SCM p = alternatives ()->music_list ();
   while (gh_pair_p (p) && done < repeat_count ())
     {
-      m = m + unsmob_music (gh_car (p))->length_mom ();
+      m = m + unsmob_music (ly_car (p))->length_mom ();
       done ++;
       if (repeat_count () - done < alternatives ()->length_i ())
-       p = gh_cdr (p);
+       p = ly_cdr (p);
     }
   return m;
 }
@@ -104,8 +104,8 @@ Repeated_music::alternatives_volta_length_mom () const
   SCM p = alternatives ()->music_list ();
   while (gh_pair_p (p))
     {
-      m = m + unsmob_music (gh_car (p))->length_mom ();
-      p = gh_cdr (p);
+      m = m + unsmob_music (ly_car (p))->length_mom ();
+      p = ly_cdr (p);
     }
   return m;
 }
index 9cee9ae4f40b38fb28145a2c5d45ba5521493063..e9a103808950a3951d14ed0c17ad54115c71e99d 100644 (file)
@@ -53,9 +53,9 @@ Request_chord_iterator::get_music (Moment) const
     {
       Music_sequence * ms = dynamic_cast<Music_sequence*> (music_l ());
      
-      for (SCM m = ms->music_list (); gh_pair_p (m); m = gh_cdr (m))
+      for (SCM m = ms->music_list (); gh_pair_p (m); m = ly_cdr (m))
        {
-         s = gh_cons (gh_car (m) , s);
+         s = gh_cons (ly_car (m) , s);
        }
     }
   return s;
@@ -67,9 +67,9 @@ Request_chord_iterator::process (Moment m)
   if (last_processed_mom_ < Moment (0))
     {
       for (SCM s = dynamic_cast<Music_sequence *> (music_l ())->music_list ();
-          gh_pair_p (s);  s = gh_cdr (s))
+          gh_pair_p (s);  s = ly_cdr (s))
        {
-         Music *mus = unsmob_music (gh_car (s));
+         Music *mus = unsmob_music (ly_car (s));
 
          bool gotcha = try_music (mus);
          if (!gotcha)
index 084042f021be6d18078bdf8c35162cab3ba81127..50835d2946374b66a2cdfd18bbcaa79a7d335dae 100644 (file)
@@ -21,9 +21,9 @@ Request_chord::Request_chord ()
 Pitch
 Request_chord::to_relative_octave (Pitch last)
 {
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
+  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
     {
-      Music * mus = unsmob_music (gh_car (s));
+      Music * mus = unsmob_music (ly_car (s));
       if (Melodic_req *m= dynamic_cast <Melodic_req *> (mus))
        {
          Pitch pit = *unsmob_pitch (m->get_mus_property ("pitch"));
index 591d90b3868998dc9cd58be9e715bd74139f5ec7..e81cef84953cfd6474c1c564b72aa7e314b590ef 100644 (file)
@@ -90,10 +90,10 @@ Rest_collision::do_shift (Grob *me, SCM elts)
   Link_array<Grob> rests;
   Link_array<Grob> notes;
   Grob * commony = 0;
-  for (SCM s = elts; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = elts; gh_pair_p (s); s = ly_cdr (s))
     {
       
-      Grob * e = unsmob_grob (gh_car (s));
+      Grob * e = unsmob_grob (ly_car (s));
       if (!e)
        continue;
       
index 7077965c8f46c59a75c2232e63225c093cba3cb5..cf3bb64db01d467cf31b1503600116905de90bdf 100644 (file)
@@ -17,8 +17,8 @@ Scaled_font_metric::Scaled_font_metric (Font_metric* m, Real magn)
   magnification_f_ = magn;
   SCM desc = m->description_;
 
-  Real total_mag = magn * gh_scm2double (gh_cdr (desc));
-  description_ = gh_cons (gh_car (desc), gh_double2scm (total_mag));
+  Real total_mag = magn * gh_scm2double (ly_cdr (desc));
+  description_ = gh_cons (ly_car (desc), gh_double2scm (total_mag));
   orig_l_ = m;
 }
 
index 9ab1dbe428c1eb3359063c1d22951d4f4de76afb..0b6680ae95137a3df914a9af7b157acfb953279a 100644 (file)
@@ -51,7 +51,7 @@ Score::Score (Score const &s)
   /*
     TODO: this is not very elegant.... 
    */
-  store_locations_global_b = (gh_eval_str ("point-and-click") !=  SCM_BOOL_F);
+  store_locations_global_b = (scm_c_eval_string ("point-and-click") !=  SCM_BOOL_F);
 
   Music * m =unsmob_music (s.music_);
   music_ =  m?m->clone ()->self_scm () : SCM_EOL;
index 17aec42ba026c0a13f44c1a353ca8da22e4aaf05..ef0c8266affba90d9a85b1ddce98f0c7691ab317 100644 (file)
@@ -69,21 +69,21 @@ Script_engraver::process_music ()
        }
       // todo -> use result of articulation-to-scriptdef directly as basic prop list.
       Grob *p =new Item (get_property ("Script"));
-      art = gh_cdr (art);
-      p->set_grob_property ("molecule", gh_car (art));
+      art = ly_cdr (art);
+      p->set_grob_property ("molecule", ly_car (art));
 
-      art = gh_cdr (art);
-      bool follow_staff = gh_scm2bool (gh_car (art));
-      art = gh_cdr (art);
-      SCM relative_stem_dir = gh_car (art);
-      art = gh_cdr (art);
+      art = ly_cdr (art);
+      bool follow_staff = gh_scm2bool (ly_car (art));
+      art = ly_cdr (art);
+      SCM relative_stem_dir = ly_car (art);
+      art = ly_cdr (art);
 
       SCM force_dir = l->get_mus_property ("direction");
       if (isdir_b (force_dir) && !to_dir (force_dir))
-       force_dir = gh_car (art);
+       force_dir = ly_car (art);
       
-      art = gh_cdr (art);
-      SCM priority = gh_car (art);
+      art = ly_cdr (art);
+      SCM priority = ly_car (art);
 
       if (isdir_b (force_dir) && to_dir (force_dir))
        p->set_grob_property ("direction", force_dir);
index 2a43afc1340f8a26b171985080eb492529c63327..1579f0b97a35843f6fee3cbbcb0174f7865f7ded 100644 (file)
@@ -22,15 +22,15 @@ Script::get_molecule (Grob * me, Direction d)
   SCM s = me->get_grob_property ("molecule");
   assert (gh_pair_p (s));
 
-  SCM key = gh_car (s);
+  SCM key = ly_car (s);
   if (key == ly_symbol2scm ("feta"))
     {
       return Font_interface::get_default_font (me)->find_by_name ("scripts-" +
-                                   ly_scm2string (index_cell (gh_cdr (s), d)));
+                                   ly_scm2string (index_cell (ly_cdr (s), d)));
     }
   else if (key == ly_symbol2scm ("accordion"))
     {
-      return Lookup::accordion (gh_cdr (s), 1.0, Font_interface::get_default_font (me));
+      return Lookup::accordion (ly_cdr (s), 1.0, Font_interface::get_default_font (me));
     }
   else
     assert (false);
index 9a1c85d51b07622c68c0ac75dc02d127809282dd..89bceab5d4c0dce07302e9112541da72d7eb741e 100644 (file)
@@ -25,9 +25,9 @@ Separating_group_spanner::find_rods (Item * r, SCM next)
     This is an inner loop, however, in most cases, the interesting L
     will just be the first entry of NEXT, making it linear in most of
     the cases.  */
-  for(; gh_pair_p (next); next = gh_cdr (next))
+  for(; gh_pair_p (next); next = ly_cdr (next))
     {
-      Item *l = dynamic_cast<Item*> (unsmob_grob (gh_car( next)));
+      Item *l = dynamic_cast<Item*> (unsmob_grob (ly_car( next)));
       Item *lb = l->find_prebroken_piece (RIGHT);
 
       if (lb)
@@ -77,12 +77,12 @@ Separating_group_spanner::set_spacing_rods (SCM smob)
 {
   Grob*me = unsmob_grob (smob);
   
-  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (gh_cdr (s)); s = gh_cdr (s))
+  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (ly_cdr (s)); s = ly_cdr (s))
     {
       /*
        Order of elements is reversed!
        */
-      SCM elt = gh_car (s);
+      SCM elt = ly_car (s);
       Item *r = dynamic_cast<Item*> (unsmob_grob (elt));
 
       if (!r)
@@ -91,9 +91,9 @@ Separating_group_spanner::set_spacing_rods (SCM smob)
       Item *rb
        = dynamic_cast<Item*> (r->find_prebroken_piece (LEFT));
       
-      find_rods (r, gh_cdr (s));
+      find_rods (r, ly_cdr (s));
       if (rb)
-       find_rods (rb, gh_cdr (s));
+       find_rods (rb, ly_cdr (s));
     }
 
   find_musical_sequences (me);
@@ -104,9 +104,9 @@ Separating_group_spanner::set_spacing_rods (SCM smob)
   /*
     We've done our job, so we get lost. 
    */
-  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = ly_cdr (s))
     {
-      Item * it =dynamic_cast<Item*> (unsmob_grob (gh_car (s)));
+      Item * it =dynamic_cast<Item*> (unsmob_grob (ly_car (s)));
       if (it && it->broken_b ())
        {
          it->find_prebroken_piece (LEFT) ->suicide ();
@@ -133,9 +133,9 @@ Separating_group_spanner::find_musical_sequences (Grob *me)
   Item *last = 0;
   Item *llast = 0;
   for (SCM s = me->get_grob_property ("elements");
-       gh_pair_p (s); s = gh_cdr (s))
+       gh_pair_p (s); s = ly_cdr (s))
     {
-      Item *it = dynamic_cast<Item*> (unsmob_grob (gh_car (s)));
+      Item *it = dynamic_cast<Item*> (unsmob_grob (ly_car (s)));
       if (last)
        {       
          Item *lcol = last->column_l ();
@@ -178,12 +178,12 @@ Separating_group_spanner::find_musical_sequences (Grob *me)
                    }
 
                  Item * left
-                   = dynamic_cast<Item*> (unsmob_grob (gh_car (between)));
+                   = dynamic_cast<Item*> (unsmob_grob (ly_car (between)));
                  if(Paper_column::rank_i (left->column_l ()) < rank)
                    gh_set_car_x (between, col->self_scm());
                  
                  Item * right
-                   = dynamic_cast<Item*> (unsmob_grob (gh_cdr (between)));
+                   = dynamic_cast<Item*> (unsmob_grob (ly_cdr (between)));
                  if (Paper_column::rank_i (right->column_l ()) > llrank )
                    gh_set_cdr_x (between, llcol->self_scm ());
                }
index 522cde9ac162a6a3324610c2aaac920a86350d8b..2c48a347713fd15751621bbc29e1c8dc25035ae9 100644 (file)
@@ -34,9 +34,9 @@ Separation_item::my_width (Grob *me)
   Paper_column * pc = item->column_l ();
   Interval w;
   
-  for (SCM s =  me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s =  me->get_grob_property ("elements"); gh_pair_p (s); s = ly_cdr (s))
     {
-      SCM elt = gh_car (s);
+      SCM elt = ly_car (s);
       if (!unsmob_grob (elt))
        continue;
 
index f37320caf078f2bb08157ec126e80100ecaef471..e77983a529269371479cdb9cce3e8c4ba270d1c1 100644 (file)
@@ -39,7 +39,7 @@
 
 
   if (gh_pair_p (cursor_))
-    iter_p_->music_l_ == unsmob_music (gh_car (cursor_))
+    iter_p_->music_l_ == unsmob_music (ly_car (cursor_))
   else
     iter_p_ == 0;
 
@@ -94,9 +94,9 @@ get_grace_fixups (SCM cursor)
   Grace_fixup *head = 0;
   Grace_fixup **tail = &head;
 
-  for (; gh_pair_p (cursor); cursor = gh_cdr (cursor))
+  for (; gh_pair_p (cursor); cursor = ly_cdr (cursor))
     {
-      Music * mus = unsmob_music (gh_car (cursor));
+      Music * mus = unsmob_music (ly_car (cursor));
       Moment s = mus->start_mom ();
       Moment l =mus->length_mom () - s;
 
@@ -130,7 +130,7 @@ Sequential_music_iterator::construct_children ()
 {
   cursor_ = dynamic_cast<Music_sequence const*> (music_l ())->music_list ();
 
-  iter_p_ = gh_pair_p (cursor_) ?  get_iterator_p (unsmob_music (gh_car (cursor_))) : 0;
+  iter_p_ = gh_pair_p (cursor_) ?  get_iterator_p (unsmob_music (ly_car (cursor_))) : 0;
   while (iter_p_ && !iter_p_->ok ())
     {
       next_element ();
@@ -184,10 +184,10 @@ Sequential_music_iterator::next_element ()
     }
   
   delete iter_p_;
-  cursor_ = gh_cdr (cursor_);
+  cursor_ = ly_cdr (cursor_);
 
   if (gh_pair_p (cursor_))
-    iter_p_ = get_iterator_p (unsmob_music (gh_car (cursor_)));
+    iter_p_ = get_iterator_p (unsmob_music (ly_car (cursor_)));
   else
     iter_p_ = 0;
 }
@@ -244,9 +244,9 @@ Sequential_music_iterator::get_music (Moment until)const
       s = gh_append2 (nm, s);
       
       Moment m = 0;
-      for (SCM i = nm; gh_pair_p (i); i = gh_cdr (i))
+      for (SCM i = nm; gh_pair_p (i); i = ly_cdr (i))
        {
-         Music *mus=unsmob_music (gh_car (i));
+         Music *mus=unsmob_music (ly_car (i));
          m = m >? (mus->length_mom () - mus->start_mom ());
        }
       if (m > Moment (0))
index 2bef230ec64880f6e5fcab7426807ed1f1a32c4f..00cf117a5ff1788887957e824c9dbf8eeea34188 100644 (file)
@@ -80,17 +80,17 @@ Side_position_interface::general_side_position (Grob * me, Axis a, bool use_exte
   */
   SCM support = me->get_grob_property ("side-support-elements");
     // me->remove_grob_property ("side-support-elements");
-  for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
+  for (SCM s = support; s != SCM_EOL; s = ly_cdr (s))
     {
-      Grob * e  = unsmob_grob (gh_car (s));
+      Grob * e  = unsmob_grob (ly_car (s));
       if (e)
        common = common->common_refpoint (e, a);
     }
   
   Interval dim;
-  for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
+  for (SCM s = support; s != SCM_EOL; s = ly_cdr (s))
     {
-      Grob * e  = unsmob_grob (gh_car (s));
+      Grob * e  = unsmob_grob (ly_car (s));
       if (e)
        if (use_extents)
          dim.unite (e->extent (common, a));
index 6671a6edb675d7bbcd19ac6d1fe7ee242d76b779..9a28be14cab856a77e1bc743723301cad2315ed4 100644 (file)
@@ -180,7 +180,7 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
       SCM spring_params = SCM_EOL;
       for (SCM s = cols[i]->get_grob_property ("ideal-distances");
           !gh_pair_p (spring_params) && gh_pair_p (s);
-          s = gh_cdr (s))
+          s = ly_cdr (s))
        {
          Grob *other = unsmob_grob (gh_caar (s));
          if (other != cols[i+1])
@@ -192,8 +192,8 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
       Spring_description desc;
       if (gh_pair_p (spring_params))
        {
-         desc.ideal_f_ = gh_scm2double (gh_car (spring_params));
-         desc.hooke_f_ = gh_scm2double (gh_cdr (spring_params));
+         desc.ideal_f_ = gh_scm2double (ly_car (spring_params));
+         desc.hooke_f_ = gh_scm2double (ly_cdr (spring_params));
        }
       else
        {
@@ -221,7 +221,7 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
   for (int i=0; i < cols.size () - 1; i++)
     {
       for (SCM s = Spaceable_grob::get_minimum_distances (cols[i]);
-          gh_pair_p (s); s = gh_cdr (s))
+          gh_pair_p (s); s = ly_cdr (s))
        {
          Grob * other = unsmob_grob (gh_caar (s));
          int oi = cols.find_i (other);
index d72c81cea183196fa4275896625b2078833e3f40..390849e2263cae3fcfe742b080a037cdb9b6d7bb 100644 (file)
@@ -52,9 +52,9 @@ Simultaneous_music_iterator::construct_children ()
   Music_sequence const *sim = dynamic_cast<Music_sequence const*> (music_l ());
 
   SCM i = sim->music_list ();
-  for (; gh_pair_p (i); i = gh_cdr (i), j++)
+  for (; gh_pair_p (i); i = ly_cdr (i), j++)
     {
-      Music *mus = unsmob_music (gh_car (i));
+      Music *mus = unsmob_music (ly_car (i));
       Music_iterator * mi = static_get_iterator_p (mus);
 
       /* if separate_contexts_b_ is set, create a new context with the
index b5f0db22d72365f7de7e5097256d545380da68e0..8c1babb399cf1f9ac0419e6825bc9e78f8cba104 100644 (file)
@@ -154,11 +154,11 @@ Slur_bezier_bow::minimise_enclosed_area (Real beauty,
   if (fit_factor () > 1.0)
     blow_fit ();
   
-  Real pct_c0 = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c0"), bezier_props)));
-  Real pct_c3 = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c3"), bezier_props)));
-  Real pct_in_max =  gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-in-max"), bezier_props)));
-  Real pct_out_max = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-out-max"), bezier_props)));
-  Real steps =  gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-area-steps"),bezier_props)));
+  Real pct_c0 = gh_scm2double (ly_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c0"), bezier_props)));
+  Real pct_c3 = gh_scm2double (ly_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c3"), bezier_props)));
+  Real pct_in_max =  gh_scm2double (ly_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-in-max"), bezier_props)));
+  Real pct_out_max = gh_scm2double (ly_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-out-max"), bezier_props)));
+  Real steps =  gh_scm2double (ly_cdr (scm_assoc (ly_symbol2scm ("bezier-area-steps"),bezier_props)));
 
   for (int i=0; i < steps; i++)
     {
index d48c91d7b64b8cc4f1a54eaa044548e1e88b28d6..f2035877bd5215d2db489a079ea11bcefd4d8d86 100644 (file)
@@ -69,7 +69,7 @@ Slur::de_uglyfy (Grob*me, Slur_bezier_bow* bb, Real default_height)
       Real f = default_height / length;
       SCM up = me->get_grob_property ("de-uglify-parameters");
       
-      Real c1 = gh_scm2double (gh_car (up));
+      Real c1 = gh_scm2double (ly_car (up));
       Real c2 = gh_scm2double (gh_cadr (up));
       Real c3 = gh_scm2double (gh_caddr (up)); 
       
@@ -178,7 +178,7 @@ Slur::set_extremities (Grob *me)
       if (!gh_symbol_p (index_cell (me->get_grob_property ("attachment"), dir)))
        {
          for (SCM s = me->get_grob_property ("extremity-rules");
-              s != SCM_EOL; s = gh_cdr (s))
+              s != SCM_EOL; s = ly_cdr (s))
            {
              SCM r = gh_call2 (gh_caar (s), me->self_scm (),
                                 gh_int2scm ((int)dir));
@@ -201,10 +201,10 @@ Real
 Slur::get_first_notecolumn_y (Grob *me, Direction dir)
 {
   Grob *col = dir == LEFT
-    ? unsmob_grob (gh_car (scm_reverse (me->get_grob_property
+    ? unsmob_grob (ly_car (scm_reverse (me->get_grob_property
  ("note-columns"))))
     : unsmob_grob
- (gh_car (me->get_grob_property ("note-columns")));
+ (ly_car (me->get_grob_property ("note-columns")));
   
   Grob *common[] =
   {
@@ -267,7 +267,7 @@ Slur::get_attachment (Grob *me, Direction dir,
       set_extremities (me);
       s = me->get_grob_property ("attachment");
     }
-  SCM a = dir == LEFT ? gh_car (s) : gh_cdr (s);
+  SCM a = dir == LEFT ? ly_car (s) : ly_cdr (s);
   Spanner*sp = dynamic_cast<Spanner*> (me);
   String str = ly_symbol2string (a);
   Real staff_space = Staff_symbol_referencer::staff_space ((Grob*)me);
@@ -327,7 +327,7 @@ Slur::get_attachment (Grob *me, Direction dir,
     Hmm, maybe after-line-breaking should set this to loose-end?  */
   else // if (str == "loose-end")
     {
-      SCM other_a = dir == LEFT ? gh_cdr (s) : gh_car (s);
+      SCM other_a = dir == LEFT ? ly_cdr (s) : ly_car (s);
       if (ly_symbol2string (other_a) != "loose-end")
        o = broken_trend_offset (me, dir);
     }
@@ -343,7 +343,7 @@ Slur::get_attachment (Grob *me, Direction dir,
 
   if (l != SCM_BOOL_F)
     {
-      Offset off = ly_scm2offset (gh_cdr (l)) * staff_space;
+      Offset off = ly_scm2offset (ly_cdr (l)) * staff_space;
       off[X_AXIS] *= dir;
       off[Y_AXIS] *= Directional_element_interface::get (me);
       o += off;
@@ -431,8 +431,8 @@ Slur::get_encompass_offset_arr (Grob *me)
   Link_array<Grob>  encompass_arr;
   while (gh_pair_p (eltlist))
     {
-      encompass_arr.push (unsmob_grob (gh_car (eltlist)));      
-      eltlist =gh_cdr (eltlist);
+      encompass_arr.push (unsmob_grob (ly_car (eltlist)));      
+      eltlist =ly_cdr (eltlist);
     }
   encompass_arr.reverse ();
 
@@ -545,8 +545,8 @@ Slur::set_control_points (Grob*me)
   SCM h_inf_scm = scm_assq (ly_symbol2scm ("height-limit"), details);
   SCM r_0_scm = scm_assq (ly_symbol2scm ("ratio"), details);
 
-  Real r_0 = gh_scm2double (gh_cdr (r_0_scm));
-  Real h_inf = staff_space * gh_scm2double (gh_cdr (h_inf_scm));
+  Real r_0 = gh_scm2double (ly_cdr (r_0_scm));
+  Real h_inf = staff_space * gh_scm2double (ly_cdr (h_inf_scm));
   
   Slur_bezier_bow bb (get_encompass_offset_arr (me),
                      Directional_element_interface::get (me),
@@ -565,8 +565,8 @@ Slur::set_control_points (Grob*me)
       bb.minimise_enclosed_area (sb, details);
       SCM sbf = scm_assq (ly_symbol2scm ("force-blowfit"), details);
       Real bff = 1.0;
-      if (gh_pair_p (sbf) && gh_number_p (gh_cdr (sbf)))
-         bff = gh_scm2double (gh_cdr (sbf));
+      if (gh_pair_p (sbf) && gh_number_p (ly_cdr (sbf)))
+         bff = gh_scm2double (ly_cdr (sbf));
 
       bb.curve_.control_[1][Y_AXIS] *= bff;
       bb.curve_.control_[2][Y_AXIS] *= bff;
@@ -622,9 +622,9 @@ Slur::get_curve (Grob*me)
   if (!scm_ilength (me->get_grob_property ("note-columns")))
     return b;
 
-  for (SCM s= me->get_grob_property ("control-points"); s != SCM_EOL; s = gh_cdr (s))
+  for (SCM s= me->get_grob_property ("control-points"); s != SCM_EOL; s = ly_cdr (s))
     {
-      b.control_[i] = ly_scm2offset (gh_car (s));
+      b.control_[i] = ly_scm2offset (ly_car (s));
       i++;
     }
 
index 26bf4e8066b9165b7c54c81f05605dd298bd0141..ec1e0430c008b26310594bacde440277dc59463d 100644 (file)
@@ -24,12 +24,12 @@ Spaceable_grob::add_rod (Grob *me , Grob * p, Real d)
 {
   SCM mins = get_minimum_distances (me);
   SCM newdist = gh_double2scm (d);
-  for (SCM s = mins; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = mins; gh_pair_p (s); s = ly_cdr (s))
     {
-      SCM dist = gh_car (s);
-      if (gh_car (dist) == p->self_scm ())
+      SCM dist = ly_car (s);
+      if (ly_car (dist) == p->self_scm ())
        {
-         gh_set_cdr_x (dist, scm_max (gh_cdr (dist),
+         gh_set_cdr_x (dist, scm_max (ly_cdr (dist),
                                       newdist));
          return ;
        }
@@ -46,10 +46,10 @@ Spaceable_grob::add_spring (Grob*me, Grob * p, Real d, Real strength)
   
   
   SCM newdist= gh_double2scm (d);
-  for (SCM s = mins; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = mins; gh_pair_p (s); s = ly_cdr (s))
     {
-      SCM dist = gh_car (s);
-      if (gh_car (dist) == p->self_scm ())
+      SCM dist = ly_car (s);
+      if (ly_car (dist) == p->self_scm ())
        {
          programming_error ("already have that spring");
          return ;
index 472fa6732bd82528b5ec2584caaeab60fe99c6b2..6a0a62806e6e3f06be69755586e51c7826fe392c 100644 (file)
@@ -181,7 +181,7 @@ Spacing_spanner::do_measure (Grob*me, Link_array<Grob> const & cols)
          Real left_distance = 0;
          if (gh_pair_p (hint))
            {
-             left_distance = gh_scm2double (gh_cdr (hint)); 
+             left_distance = gh_scm2double (ly_cdr (hint)); 
            }
           // 2nd condition should be (i+1 < col_count ()), ie. not the last column in score.  FIXME
          else if (!Paper_column::musical_b (lc) && i+1 < cols.size ()) 
@@ -218,7 +218,7 @@ Spacing_spanner::do_measure (Grob*me, Link_array<Grob> const & cols)
          Real right_dist = 0.0;
          if (gh_pair_p (next_hint))
            {
-             right_dist += - gh_scm2double (gh_car (next_hint));
+             right_dist += - gh_scm2double (ly_car (next_hint));
            }
          else
            {
@@ -247,7 +247,7 @@ Spacing_spanner::do_measure (Grob*me, Link_array<Grob> const & cols)
          
          if (gh_pair_p (next_stretch_hint))
            // see regtest spacing-tight
-           stretch_dist += - gh_scm2double (gh_car (next_stretch_hint));
+           stretch_dist += - gh_scm2double (ly_car (next_stretch_hint));
          else
            stretch_dist += right_dist;
 
@@ -524,8 +524,8 @@ Spacing_spanner::stem_dir_correction (Grob*me, Grob*l, Grob*r)
   if (scm_ilength (dl) != 1 || scm_ilength (dr) != 1)
     return 0.;
 
-  dl = gh_car (dl);
-  dr = gh_car (dr);
+  dl = ly_car (dl);
+  dr = ly_car (dr);
 
   assert (gh_number_p (dl) && gh_number_p (dr));
   int d1 = gh_scm2int (dl);
index 674debdd16200d69f1b3cdc8fd5846a8aa8d7b8b..75e3779ab1e196031c027a5d1a60c4b39edb1916 100644 (file)
@@ -82,11 +82,11 @@ Span_arpeggio_engraver::stop_translation_timestep ()
       for (int i=0; i < arpeggios_.size (); i ++)
        {
          for (SCM s = arpeggios_[i]->get_grob_property ("stems");
-              gh_pair_p (s); s = gh_cdr (s))
-           Group_interface::add_thing (span_arpeggio_, "stems", gh_car (s));
+              gh_pair_p (s); s = ly_cdr (s))
+           Group_interface::add_thing (span_arpeggio_, "stems", ly_car (s));
          for (SCM s = arpeggios_[i]->get_grob_property ("side-support-elements");
-              gh_pair_p (s); s = gh_cdr (s))
-           Group_interface::add_thing (span_arpeggio_, "side-support-elements", gh_car (s));
+              gh_pair_p (s); s = ly_cdr (s))
+           Group_interface::add_thing (span_arpeggio_, "side-support-elements", ly_car (s));
 
          /*
            we can't kill the children, since we don't want to the
index 61e1f097eace5faa59a43d9c574a17c12c7a8ad9..01020ca6260b85a50e372435e89270abc1bb80ca 100644 (file)
@@ -55,9 +55,9 @@ Span_bar::brew_molecule (SCM smobbed_me)
 
   // compute common refpoint of elements
   Grob *refp = me;
-  for (SCM elts = first_elt; gh_pair_p (elts); elts = gh_cdr (elts))
+  for (SCM elts = first_elt; gh_pair_p (elts); elts = ly_cdr (elts))
     {
-      SCM smobbed_staff_bar = gh_car (elts);
+      SCM smobbed_staff_bar = ly_car (elts);
       Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
       refp = staff_bar->common_refpoint (refp, Y_AXIS);
     }
@@ -78,9 +78,9 @@ Span_bar::brew_molecule (SCM smobbed_me)
   Molecule span_bar_mol;
 
   Interval prev_extent;
-  for (SCM elts = first_elt; gh_pair_p (elts); elts = gh_cdr (elts))
+  for (SCM elts = first_elt; gh_pair_p (elts); elts = ly_cdr (elts))
     {
-      SCM smobbed_staff_bar = gh_car (elts);
+      SCM smobbed_staff_bar = ly_car (elts);
       Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
       Interval ext = staff_bar->extent (refp, Y_AXIS);
       if (ext.empty_b ())
@@ -177,7 +177,7 @@ void
 Span_bar::evaluate_glyph (Grob*me)
 {
   SCM elts = me->get_grob_property ("elements");
-  Grob * b = unsmob_grob (gh_car (elts));
+  Grob * b = unsmob_grob (ly_car (elts));
   SCM glsym =ly_symbol2scm ("glyph");
   SCM gl =b ->get_grob_property (glsym);
   if (!gh_string_p (gl))
index 32ae0ed5c11acb46098603450ccbeb40f34baa2a..6f5504a556c8c729c33850678a97d180b47ab90a 100644 (file)
@@ -320,8 +320,8 @@ extend_spanner_over_item (Item *it, SCM extremal_pair)
   if (!it)
     return;
   Item * col = it->column_l ();
-  Item * i1 = dynamic_cast<Item*> (unsmob_grob (gh_car (extremal_pair)));
-  Item * i2 = dynamic_cast<Item*> (unsmob_grob (gh_cdr (extremal_pair)));
+  Item * i1 = dynamic_cast<Item*> (unsmob_grob (ly_car (extremal_pair)));
+  Item * i2 = dynamic_cast<Item*> (unsmob_grob (ly_cdr (extremal_pair)));
   int r = Paper_column::rank_i (col);
   if (!i1 || r < Paper_column::rank_i (i1->column_l ()))
     {
@@ -341,8 +341,8 @@ extend_spanner_over_elements (SCM value, SCM extremal_pair)
 {
   if (gh_pair_p (value))
     {
-      extend_spanner_over_elements (gh_car (value), extremal_pair);
-      extend_spanner_over_elements (gh_cdr (value), extremal_pair);
+      extend_spanner_over_elements (ly_car (value), extremal_pair);
+      extend_spanner_over_elements (ly_cdr (value), extremal_pair);
     }
   else if (unsmob_grob (value))
     {
@@ -375,8 +375,8 @@ extend_spanner_over_elements (Grob*s)
   SCM pair = gh_cons (s1,s2);
   extend_spanner_over_elements (sp->mutable_property_alist_, pair);
 
-  Grob *p1 =  unsmob_grob (gh_car (pair));
-  Grob* p2 = unsmob_grob (gh_cdr (pair));
+  Grob *p1 =  unsmob_grob (ly_car (pair));
+  Grob* p2 = unsmob_grob (ly_cdr (pair));
   sp->set_bound (LEFT,p1);
   sp->set_bound (RIGHT, p2);
 }
index 7d7cdd5af1b7c8bc307b99e6a3a25aaf29131ccd..b7b7bfc9c73388e100469e9d49c2523caaad942f 100644 (file)
@@ -110,8 +110,8 @@ Text_spanner::brew_molecule (SCM smob)
   SCM s = me->get_grob_property ("shorten");
   if (gh_pair_p (s))
     {
-      shorten[LEFT] = gh_scm2double (gh_car (s));
-      shorten[RIGHT] = gh_scm2double (gh_cdr (s));
+      shorten[LEFT] = gh_scm2double (ly_car (s));
+      shorten[RIGHT] = gh_scm2double (ly_cdr (s));
     }
 
   width -= shorten[LEFT] + shorten[RIGHT];
index ae2be9fc11b8d24b5eab461d4f4d401084df96b3..bb011b973d0707439dbee616a8c98de153fce5fb 100644 (file)
@@ -180,8 +180,8 @@ Tie::get_control_points (SCM smob)
   SCM lim // groetjes aan de chirurgendochter.
     = scm_assq (ly_symbol2scm ("height-limit"),details);
   
-  Real h_inf = gh_scm2double (gh_cdr (lim)) *  staff_space;
-  Real r_0 = gh_scm2double (gh_cdr (scm_assq (ly_symbol2scm ("ratio"),details)));
+  Real h_inf = gh_scm2double (ly_cdr (lim)) *  staff_space;
+  Real r_0 = gh_scm2double (ly_cdr (scm_assq (ly_symbol2scm ("ratio"),details)));
 
   Bezier b  = slur_shape (width, h_inf, r_0);
   
@@ -299,9 +299,9 @@ Tie::brew_molecule (SCM smob)
 
   Bezier b;
   int i = 0;
-  for (SCM s= cp; s != SCM_EOL; s = gh_cdr (s))
+  for (SCM s= cp; s != SCM_EOL; s = ly_cdr (s))
     {
-      b.control_[i] = ly_scm2offset (gh_car (s));
+      b.control_[i] = ly_scm2offset (ly_car (s));
       i++;
     }
   
index a8ce824d564cfdb14fc7045d5c63b6dbd8bf40bf..c518f96ed6d0bdabc715f46380b690866628c2ce 100644 (file)
@@ -49,8 +49,8 @@ Time_signature_performer::create_audio_elements ()
   if (gh_pair_p (fr) && !gh_equal_p (fr, prev_fraction_))
     {
       prev_fraction_ = fr;
-      int b = gh_scm2int (gh_car (fr));
-      int o = gh_scm2int (gh_cdr (fr));
+      int b = gh_scm2int (ly_car (fr));
+      int o = gh_scm2int (ly_cdr (fr));
       
       audio_p_ = new Audio_time_signature (b,o);
       Audio_element_info info (audio_p_, 0);
index 8e516e8ccdb49bff1de649e01cbb073f93ed7aa3..2f96d04f7e0012069b73eb7db115de8f916cbe80 100644 (file)
@@ -28,8 +28,8 @@ Time_signature::brew_molecule (SCM smob)
   int d = 4;
   if (gh_pair_p (frac))
     {
-      n = gh_scm2int (gh_car (frac));
-      d = gh_scm2int (gh_cdr (frac));
+      n = gh_scm2int (ly_car (frac));
+      d = gh_scm2int (ly_cdr (frac));
     }
 
   
index b91088d5a0989babd468bb83472e1868445121de..763bdc8997fe92dce5ffa04d33f4e7e0acbf9ba6 100644 (file)
@@ -52,9 +52,9 @@ Translator_group::check_removal ()
   SCM next = SCM_EOL; 
   for (SCM p = trans_group_list_; gh_pair_p (p); p = next)
     {
-      next = gh_cdr (p);
+      next = ly_cdr (p);
 
-      Translator_group *trg =  dynamic_cast<Translator_group*> (unsmob_translator (gh_car (p)));
+      Translator_group *trg =  dynamic_cast<Translator_group*> (unsmob_translator (ly_car (p)));
 
       trg->check_removal ();
       if (trg->removable_b ())
@@ -98,9 +98,9 @@ Translator_group::find_existing_translator_l (String n, String id)
     return this;
 
   Translator_group* r = 0;
-  for (SCM p = trans_group_list_; !r && gh_pair_p (p); p = gh_cdr (p))
+  for (SCM p = trans_group_list_; !r && gh_pair_p (p); p = ly_cdr (p))
     {
-      Translator *  t = unsmob_translator (gh_car (p));
+      Translator *  t = unsmob_translator (ly_car (p));
       
       r = dynamic_cast<Translator_group*> (t)->find_existing_translator_l (n, id);
     }
@@ -153,9 +153,9 @@ Translator_group::try_music_on_nongroup_children (Music *m)
 {
   bool hebbes_b =false;
   
-  for (SCM p = simple_trans_list_; !hebbes_b && gh_pair_p (p); p = gh_cdr (p))
+  for (SCM p = simple_trans_list_; !hebbes_b && gh_pair_p (p); p = ly_cdr (p))
     {
-      hebbes_b = unsmob_translator (gh_car (p))->try_music (m);
+      hebbes_b = unsmob_translator (ly_car (p))->try_music (m);
     }
   return hebbes_b;
 }
@@ -244,8 +244,8 @@ Translator_group::get_default_interpreter ()
 static void
 static_each (SCM list, Method_pointer method)
 {
-  for (SCM p = list; gh_pair_p (p); p = gh_cdr (p))
- (unsmob_translator (gh_car (p))->*method) ();
+  for (SCM p = list; gh_pair_p (p); p = ly_cdr (p))
+ (unsmob_translator (ly_car (p))->*method) ();
   
 }
 
@@ -348,13 +348,13 @@ Translator_group::execute_single_pushpop_property (SCM prop, SCM eltprop, SCM va
          SCM newprops= SCM_EOL ;
          while (gh_pair_p (prev) && gh_caar (prev) != eltprop)
            {
-             newprops = gh_cons (gh_car (prev), newprops);
-             prev = gh_cdr (prev);
+             newprops = gh_cons (ly_car (prev), newprops);
+             prev = ly_cdr (prev);
            }
          
          if (gh_pair_p (prev))
            {
-             newprops = scm_reverse_x (newprops, gh_cdr (prev));
+             newprops = scm_reverse_x (newprops, ly_cdr (prev));
              set_property (prop, newprops);
            }
        }
index 03adb249f91a22bb4065e746183fab71e21248e4..a2e780f31da4e943d7ae08c8f9e9ab5385138282 100644 (file)
@@ -59,8 +59,8 @@ Translator::is_alias_b (String s) const
   bool b  = s == type_str_;
 
   for (SCM a = unsmob_translator_def (definition_)->type_aliases_;
-       !b && gh_pair_p (a); a = gh_cdr (a))
-    b = b || s == ly_scm2string (gh_car (a));
+       !b && gh_pair_p (a); a = ly_cdr (a))
+    b = b || s == ly_scm2string (ly_car (a));
 
   return b;
 }
@@ -162,7 +162,7 @@ Translator::mark_smob (SCM sm)
 int
 Translator::print_smob (SCM s, SCM port, scm_print_state *)
 {
-  Translator *sc = (Translator *) gh_cdr (s);
+  Translator *sc = (Translator *) ly_cdr (s);
      
   scm_puts ("#<Translator ", port);
   scm_puts ((char *)sc->name (), port);
index 6feb88b12d4a4eb7d966a4164caa77fd7055872c..68d849c1c25896ab5a72965b59cded5679de386b 100644 (file)
@@ -57,10 +57,10 @@ Volta_engraver::process_music ()
   start_str_ = SCM_EOL;
   while (gh_pair_p (cs))
     {
-      SCM c = gh_car (cs);
+      SCM c = ly_car (cs);
 
-      if (gh_pair_p (c) && gh_car (c) == ly_symbol2scm ("volta")
-         && gh_pair_p (gh_cdr (c)))
+      if (gh_pair_p (c) && ly_car (c) == ly_symbol2scm ("volta")
+         && gh_pair_p (ly_cdr (c)))
        {
          if (gh_cadr (c) ==  SCM_BOOL_F)
            end = true;
@@ -68,7 +68,7 @@ Volta_engraver::process_music ()
            start_str_ = gh_cadr (c);
        }
       
-      cs = gh_cdr (cs);
+      cs = ly_cdr (cs);
     }
 
   if (volta_span_p_)
index bc69608d146b08887e10ae129142a5b87358211b..61cfea23e503734383843eb542840dffed698bce 100644 (file)
@@ -5,7 +5,7 @@ NAME=midi
 
 
 # compile fucks up on without autoconf -I flag.
-STEPMAKE_TEMPLATES=c install python-module
+STEPMAKE_TEMPLATES=c install python-module
 
 INSTALLATION_FILES=$(outdir)/midi.so
 INSTALLATION_DIR=$(datadir)/python
diff --git a/scripts/midi2ly.py b/scripts/midi2ly.py
new file mode 100644 (file)
index 0000000..26476d4
--- /dev/null
@@ -0,0 +1,206 @@
+#!@PYTHON@
+
+import midi
+import sys
+
+scale_steps =[0,2,4,5,7,9,11]
+
+def split_channels (track):
+       chs = {}
+       for i in range(16):
+               chs[i] = []
+               
+       for e in track:
+               data = list (e[1])              
+               c =  data[0] & 0x0f
+               e = (e[0], tuple ([data[0] & 0xf0] + data[1:]))
+               chs[c].append (e)
+
+       for i in range (16):
+               if chs[i] == []:
+                       del chs[i]
+
+
+       for v in chs.values ():
+               ns = notes_on_channel(v)
+               ns = unthread_notes (ns)
+               map (dump_thread, ns)
+               
+       return chs
+
+
+class Note:
+       def __init__(self, duration, pitch, velocity):
+               self.velocity = velocity
+               self.pitch = pitch
+               self.duration = duration
+
+       def duration_compare(a,b):
+               if a.duration < b.duration :
+                       return -1
+               elif a.duration > b.duration:
+                       return 1
+               else:
+                       return 0
+       
+def notes_on_channel (channel):
+       pitches = {}
+
+       nch= []
+       for e in channel:
+               t = e[0]
+
+               if e[1][0] == midi.NOTE_ON:
+                       if not pitches.has_key (e[1][1]):
+                               pitches[e[1][1]] = (t, e[1][2])
+               elif e[1][0] == midi.NOTE_OFF:
+                       try:
+                               (lt, vel) = pitches[e[1][1]]
+                               del pitches[e[1][1]]
+                               
+                               nch.append ((t, Note (t-lt, e[1][1], vel)))
+                               
+                       except KeyError:
+                               pass
+               else:
+                       pass
+       
+       return nch
+
+def unthread_notes (channel):
+       threads = []
+       while channel:
+               thread = []
+               end_busy_t = 0
+               start_busy_t = 0
+               todo = []
+               for e in channel:
+                       t = e[0]
+                       if (t == start_busy_t and e[1].duration + t == end_busy_t) \
+                           or t >= end_busy_t:
+                               thread.append (e)
+                               start_busy_t = t
+                               end_busy_t = t + e[1].duration
+                       else:
+                               todo.append(e)
+               threads.append (thread)
+               channel = todo
+
+       return threads
+
+def gcd (a,b):
+       if b == 0:
+               return a
+       c = a
+       while c: 
+               c = a % b
+               a = b
+               b = c
+       return a
+       
+def dump_skip (dt):
+       wholes = dt / (4*384)
+       dt = dt % (4*384);
+       quarters = dt / 384
+
+       # etc.
+       if (wholes):
+               print 's1*%d' % wholes 
+       if quarters:
+               print 's4*%d' % quarters 
+
+
+
+def dump_duration (dur):
+       g = gcd (dur, 384)
+       sys.stdout.write ('4')
+       (p,q) = (dur / g, 384 / g)
+       if (p == 1 and q == 1) :
+               pass
+       else:
+               if p <> 1:      
+                       sys.stdout.write ('*%d'% p)
+               if q <> 1:
+                       sys.stdout.write ('*%d'% q)
+       
+
+def dump_note (note):
+       p = note.pitch
+       oct = p / 12
+       step = p % 12
+
+       i = 0
+       while  i < len (scale_steps):
+               if scale_steps[i] > step:
+                       break
+               i = i+1
+               
+       i = i-1
+       str = chr (i + ord ('a'))
+       if scale_steps[i] <> step:
+               str = str + 'is'
+
+       sys.stdout.write (' %s' % str);
+       dump_duration (note.duration)
+
+def dump_chord (ch):
+       if len(ch) == 1:
+               dump_note (ch[0])
+       else:
+               sys.stdout.write ("<")
+               map (dump_note, ch)
+               sys.stdout.write ('>')
+
+def dump_thread (thread):
+       last_e = None
+       chs = []
+       ch = []
+
+       for e in thread:
+               if last_e and last_e[0] == e[0]:
+                       ch.append (e[1])
+               else:
+                       if ch:
+                               chs.append ( (last_e[0], ch))
+                               
+                       ch = [e[1]]
+                       
+               last_e = e
+
+       if ch: chs.append ((last_e[0] ,ch))
+       t = 0
+       last_t = 0
+
+       for ch in chs:
+               t = ch[0]
+               if t - last_t:
+                       dump_skip (t-last_t)
+                       
+               dump_chord (ch[1])
+               last_t = t + ch[1][0].duration
+
+def dump_notes (channel):
+       on_hold = []
+       for e in channel:
+               if e[0] <> last_t:
+                       dump_chord (on_hold)
+                       on_hold = []
+                       last_t = e[0]
+
+               on_hold.append (e)
+               
+
+
+       
+def convert_midi (f):
+       str = open (f).read ()
+       midi_dump = midi.parse (str)
+
+       channels = []
+
+       for t in midi_dump[1]:
+               channels.append (split_channels (t))
+
+
+for f in sys.argv[1:]:
+    convert_midi (f)