Hello Steve, Maybe starting this way:
\version "2.19.83" { % initial shared music c'1 e | % the two alternatives \override Staff.StaffSymbol.line-count = 0 \stopStaff \startStaff \hide Staff.BarLine << \new Staff { \hide Staff.Clef \hide Staff.KeySignature \hide Staff.TimeSignature d' a' d'' | } \new Staff { \hide Staff.Clef \hide Staff.KeySignature \hide Staff.TimeSignature g' b' e'' | } >> \override Staff.StaffSymbol.line-count = 5 \stopStaff \startStaff \undo\hide Staff.BarLine % next shared music ais' bes' | } and then force a barline at the end of measure 2, move the two alternative staves fragments higher, and remove the dangling lines at the left of the two alternatives? JM > Le 19 nov. 2019 à 02:23, Steve Cummings <o...@seldenhouse.com> a écrit : > > Though I remain baffled by Scheme and its use in LilyPond, my hope is to > build one or more functions/procedures that would transpose input music and > for each chord display the transposed chord's note names, with control over > the way the names are represented (as in Cb or F# instead of ces and fis). > > Here, I'm just asking for help with one part of the function-to-be: how to > turn notes in LilyPond music into note names as text (schematic of the > complete imagined function below). > > Here's what I've tried so far, in LilyPond 2.19.8x, based closely on working > procedures found on this list. Once this is running right for single notes > I'll (hope to) get it to loop through all input music. > > #(define-scheme-function > (pitchin) > (ly:music?) > (let* ( > (note-datum (car (ly:music-property pitchin 'elements))) > (pitch-datum (ly:music-property note-datum 'pitch)) > (out-notename (ly:pitch-notename pitch-datum))) > #{ \markup > \bold > $out-notename > #} > )) > I get "syntax error, unexpected NUMBER_IDENTIFIER" on the $out-notename line > when calling notenamer with a note wrapped in braces, as in: > > \notenamer {a} > > Without the braces around the music, the error is "In procedure car in > expression (car (ly:music-property pitchin #)): Wrong type (expecting pair): > () > > Results are the same if I do "define-music-function" instead of > "define-scheme-function." > > Many thanks for your attention and help, > Steve > > PS: I have a working NoteNames reformatter but it seems to require listing in > a substitution table the specific notes of each and every chord in each > transposition. A custom function would allow display of the chord note names > in a columnar stack so if these markups were used as text scripts they > wouldn't either take too much space or collide with the names of adjacent > notes. Alternatively, chord note names could be placed beneath ChordNames. >