lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Separation_item problem


From: Juergen Reuter
Subject: Separation_item problem
Date: Mon, 17 Apr 2006 22:26:36 +0200 (CEST)

Hi,

I have been trying to fix the misplaced dot bug in Gregorian chant notation -- without sucess:

void
Vaticana_ligature_engraver::add_mora_column (Grob *parent)
{
  if (!parent) // empty ligature
    return;
  if (augmented_primitives_.size () == 0) // no dot for column
    return;
  Item *dotcol = make_item ("DotColumn", SCM_EOL);
  for (vsize i = 0; i < augmented_primitives_.size (); i++)
    {
      Item *dot = make_item ("Dots", augmented_primitives_[i]->self_scm ());
      dot->set_parent (augmented_primitives_[i], X_AXIS);
      dot->set_parent (parent, Y_AXIS);
      dot->set_property ("Y-offset", Grob::x_parent_positioning_proc);
      augmented_primitives_[i]->set_object ("dot", dot->self_scm ());
      Axis_group_interface::add_element (dotcol, dot);
      Side_position_interface::add_support (dot, augmented_primitives_[i]);
      Pointer_group_interface::add_grob (dot, ly_symbol2scm ("note-heads"),
                                         augmented_primitives_[i]);
      Dot_column::add_head (dotcol, augmented_primitives_[i]);
    }
}

The above code should create a dot column, which should be horizontally placed immediately behind Grob *parent. The dot column should consist of a number of dots, one for each notehead grob held in the
vector<Item *> augmented_primitives_
variable.

The only thing that this code produces is a "Separation_item: I've been drinking too much" error, and no dot is printed.

Once, when writing the porrectus engraver, I had similar problems, and as the cause, I suspected the discrepancy between the column of the music cause and the column of where to print the outcome. This discrepancy is also true in the above code: the notehead, which is the cause of the dot, may arise earlier in time than the column where the dots are collected.

Has someone an idea how I can fix this problem?

Greetings,
Juergen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]