- int number_of_strings = ((int) gh_length(stringTunings));
- bool high_string_one = to_boolean(get_property ("highStringOne"));
-
- Item * note = new Item (get_property ("TabNoteHead"));
-
- Music * req = note_reqs_[i];
-
- Music * tabstring_req = 0;
- if(tabstring_reqs_.size()>i)
- tabstring_req = tabstring_reqs_[i];
- // printf("%d %d\n",tabstring_reqs_.size(),i);
- // size_t lenp;
+ int number_of_strings = ((int) ly_length (stringTunings));
+ bool high_string_one = to_boolean (get_property ("highStringOne"));
+
+ Music *event = note_events_[i];
+ Item *note = make_item ("TabNoteHead", event->self_scm ());
+
+ Music *tabstring_event = 0;
+
+ for (SCM s = event->get_property ("articulations");
+ !tabstring_event && scm_is_pair (s); s = scm_cdr (s))
+ {
+ Music *art = unsmob_music (scm_car (s));
+
+ if (art->is_mus_type ("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++;
+ }
+