- d->set_parent (note_p, Y_AXIS);
- announce_grob (d, SCM_EOL);
- dot_p_arr_.push (d);
+ if (art->in_event_class ("string-number-event"))
+ tabstring_event = art;
+ }
+
+ if (!tabstring_event && j < tabstring_events_.size ())
+ {
+ tabstring_event = tabstring_events_[j];
+ if (j + 1 < tabstring_events_.size ())
+ j++;
+ }
+
+ int string_number = 0;
+ if (tabstring_event)
+ string_number = scm_to_int (tabstring_event->get_property ("string-number"));
+
+ if (!string_number)
+ {
+ SCM scm_pitch = event->get_property ("pitch");
+ int min_fret = robust_scm2int (get_property ("minimumFret"), 0);
+ int start = (high_string_one) ? 1 : string_count;
+ int end = (high_string_one) ? string_count+1 : 0;
+
+ int i = start;
+ do
+ {
+ int fret = unsmob_pitch (scm_pitch)->rounded_semitone_pitch ()
+ - scm_to_int (robust_list_ref (i - 1, string_tunings));
+
+ if (fret >= min_fret)
+ {
+ string_number = i;
+ break;
+ }
+ i += high_string_one ? 1 : -1;
+ }
+ while (i != end);