+ Stream_event *n = notes_[i];
+ SCM p = n->get_property ("pitch");
+ if (!Pitch::is_smob (p))
+ continue;
+
+ if (n->get_property ("bass") == SCM_BOOL_T)
+ bass = p;
+ else
+ {
+ SCM oct = n->get_property ("octavation");
+ if (scm_is_number (oct))
+ {
+ Pitch orig = Pitch::unsmob (p)->transposed (Pitch (-scm_to_int (oct), 0));
+ pitches = scm_cons (orig.smobbed_copy (), pitches);
+ }
+ else
+ pitches = scm_cons (p, pitches);
+ if (n->get_property ("inversion") == SCM_BOOL_T)
+ {
+ inversion = p;
+ if (!scm_is_number (oct))
+ programming_error ("inversion does not have original pitch");
+ }
+ }