%
Staff = \translator {
- \type "Engraver_group_engraver";
+ \type "Line_group_engraver_group";
+%{
+ The Hara_kiri_line_group_engraver is a Line_group_engraver
+ that will not typeset an empty line of staff, i.e., a line
+ of staff with only rests in it. This is needed for orchestral
+ scores. Comment-out Line_group_engraver_group, and uncomment
+ Hara_kiri_line_group_engraver.
+%}
+% \type "Hara_kiri_line_group_engraver";
defaultclef = violin;
\consists "Bar_engraver";
\consists "Clef_engraver";
\consists "Key_engraver";
- \consists "Meter_engraver";
\consists "Local_key_engraver";
+ \consists "Time_signature_engraver";
\consists "Staff_sym_engraver";
\consists "Collision_engraver";
\consists "Rest_collision_engraver";
%{
\consists "Bar_column_engraver";
\consists "Bar_number_engraver";
+%}
+%{
+ The Staff_margin_engraver puts the name of the instrument
+ (\property Staff.instrument; Staff.instr for subsequent lines)
+ to the left of a staff.
+%}
+%{
+ \consists "Staff_margin_engraver";
%}
\consists "Separating_line_group_engraver";
- \consists "Line_group_engraver";
-% \consists "Hara_kiri_line_group_engraver";
\accepts "Voice";
}
+ChoireStaff = \translator {
+ \type "Line_group_engraver_group";
+ \consists "Vertical_align_engraver";
+ \consists "Staff_group_bar_engraver";
+ \accepts "Staff";
+ \accepts "RhythmicStaff";
+ \accepts "GrandStaff";
+ \accepts "Lyrics";
+}
+
-Rhythmic_staff = \translator
+RhythmicStaff = \translator
{
- \type "Engraver_group_engraver";
+ \type "Line_group_engraver_group";
nolines = "1";
\consists "Pitch_squash_engraver";
\consists "Bar_engraver";
- \consists "Meter_engraver";
+ \consists "Time_signature_engraver";
\consists "Staff_sym_engraver";
- \consists "Line_group_engraver";
\accepts "Voice";
}
\type "Engraver_group_engraver";
\consists "Dynamic_engraver";
\consists "Rest_engraver";
+ \consists "Dot_column_engraver";
\consists "Stem_engraver";
\consists "Plet_engraver";
\consists "Beam_engraver";
\consists "Multi_measure_rest_engraver";
\consists "Script_engraver";
\consists "Rhythmic_column_engraver";
+ \consists "Font_size_engraver";
\consists "Slur_engraver";
- \accepts "Thread";
+ \consists "Ties_engraver";
+ \consists "Note_heads_engraver" ;
+ \consists "Skip_req_swallow_translator";
+ %\accepts "Thread";
}
Thread = \translator {
\type "Engraver_group_engraver";
- \consists "Skip_req_swallow_translator";
- \consists "Note_head_engraver" ;
- \consists "Tie_engraver";
+% \consists "Note_head_engraver" ;
+% \consists "Tie_engraver";
}
-Grand_staff = \translator {
- \type "Engraver_group_engraver";
+GrandStaff = \translator {
+ \type "Line_group_engraver_group";
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
\consists "Piano_bar_engraver";
% This should come last
- \consists "Line_group_engraver";
\accepts "Staff";
}
-Staff_group = \translator {
- \type "Engraver_group_engraver";
+StaffGroup = \translator {
+ \type "Line_group_engraver_group";
+% \type "Hara_kiri_line_group_engraver";
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
\consists "Staff_group_bar_engraver";
- \consists "Line_group_engraver";
-% \consists "Hara_kiri_line_group_engraver";
+
\accepts "Staff";
- \accepts "Rhythmic_staff";
- \accepts "Grand_staff";
+ \accepts "RhythmicStaff";
+ \accepts "GrandStaff";
\accepts "Lyrics";
}
-Lyric_voice =
+LyricVoice =
\translator{
- \type "Engraver_group_engraver";
+ \type "Line_group_engraver_group";
\consists "Separating_line_group_engraver";
\consists "Lyric_engraver";
- \consists "Line_group_engraver";
\consists "Beam_req_swallow_translator";
\consists "Plet_swallow_engraver";
}
Lyrics = \translator {
- \type "Engraver_group_engraver";
+ \type "Line_group_engraver_group";
\consists "Vertical_align_engraver";
- \consists "Line_group_engraver";
- \accepts "Lyric_voice";
+ \accepts "LyricVoice";
}
Score = \translator {
\consists "Bar_column_engraver";
\consists "Bar_number_engraver";
%}
+ \consists "Bar_column_engraver";
\consists "Span_score_bar_engraver";
\consists "Score_priority_engraver";
\consists "Priority_horizontal_align_engraver";
\consists "Vertical_align_engraver";
- \accepts "Staff_group";
+ \accepts "StaffGroup";
\accepts "Staff";
- \accepts "Rhythmic_staff";
+ \accepts "RhythmicStaff";
\accepts "Lyrics";
- \accepts "Grand_staff";
+ \accepts "GrandStaff";
+ \accepts "ChoireStaff";
}
-Stupid_score = \translator {
+StupidScore = \translator {
\type Score_engraver;
\consists "Staff_sym_engraver";
}
--- /dev/null
+/*
+ head-grav.cc -- part of GNU LilyPond
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+#include "note-head.hh"
+#include "heads-engraver.hh"
+#include "paper-def.hh"
+#include "musical-request.hh"
+#include "dots.hh"
+#include "dot-column.hh"
+
+Note_heads_engraver::Note_heads_engraver()
+{
+}
+
+bool
+Note_heads_engraver::do_try_request (Request *req_l)
+{
+ if (!req_l->access_Musical_req ())
+ return false;
+
+ Note_req * n =req_l->access_Musical_req ()->access_Note_req ();
+ if (!n)
+ return false;
+
+ note_req_l_arr_.push (n);
+ return true;
+}
+
+void
+Note_heads_engraver::do_process_requests()
+{
+ if (note_p_arr_.size ())
+ return ;
+
+ for (int i=0; i < note_req_l_arr_.size (); i++)
+ {
+ Note_head *note_p = new Note_head;
+ Note_req * note_req_l = note_req_l_arr_[i];
+ note_p->balltype_i_ = note_req_l->duration_.durlog_i_;
+ note_p->dots_i_ = note_req_l->duration_.dots_i_;
+ if (note_p->dots_i_)
+ {
+ Dots * d = new Dots;
+ note_p->dots_l_ = d;
+ announce_element (Score_element_info (d,0));
+ dot_p_arr_.push (d);
+ }
+
+ note_p->position_i_ = note_req_l->access_Note_req ()->pitch_.steps ();
+
+
+ Score_element_info itinf (note_p,note_req_l);
+ announce_element (itinf);
+ note_p_arr_.push (note_p);
+ }
+}
+
+void
+Note_heads_engraver::do_pre_move_processing()
+{
+ for (int i=0; i < note_p_arr_.size (); i++)
+ {
+ typeset_element (note_p_arr_[i]);
+ }
+ note_p_arr_.clear ();
+ for (int i=0; i < dot_p_arr_.size (); i++)
+ {
+ typeset_element (dot_p_arr_[i]);
+ }
+ dot_p_arr_.clear ();
+
+ note_req_l_arr_.clear ();
+}
+
+void
+Note_heads_engraver::do_post_move_processing()
+{
+
+}
+
+
+IMPLEMENT_IS_TYPE_B1(Note_heads_engraver,Engraver);
+ADD_THIS_TRANSLATOR(Note_heads_engraver);