;
chord_items:
- chord_item {
- $$ = gh_cons ($1, SCM_EOL);
+ /**/ {
+ $$ = SCM_EOL;
}
| chord_items chord_item {
$$ = gh_cons ($2, $$);
| CHORD_CARET {
$$ = ly_symbol2scm ("chord-caret");
}
- | CHORD_SLASH {
- $$ = ly_symbol2scm ("chord-slash");
+ | CHORD_SLASH steno_tonic_pitch {
+ $$ = scm_list_n (ly_symbol2scm ("chord-slash"), $2, SCM_UNDEFINED);
}
- | CHORD_BASS {
- $$ = ly_symbol2scm ("chord-bass");
+ | CHORD_BASS steno_tonic_pitch {
+ $$ = scm_list_n (ly_symbol2scm ("chord-bass"), $2, SCM_UNDEFINED);
}
;
(gobble-pitches tail)))
;; ugh. Simply add isolated pitches. This will give
- ;; unexpected results.
+ ;; unexpected results....
((ly:pitch? tag)
(interpret-chord root
(add-pitches root chord tail)
))
(write-me "*******\n" flat-mods)
- (set! complete-chord (interpret-chord root base-chord flat-mods))
(write-me "pitches: " complete-chord)
(write-me "bass: " bass)
+
+ (set! complete-chord (interpret-chord root base-chord flat-mods))
+ (set! complete-chord (sort complete-chord ly:pitch<?))
+
+ ;; TODO: lower bass to be below chord.
(process-inversion (make-chord complete-chord bass duration) inversion)
))