On Wed, Jan 07, 2015 at 04:46:48PM -0500, Kieren MacMillan wrote: > > Did you try adjusting the function to handle chords? As I wrote, ?This kind > of thing would also automagically work ? ****or easily be made to work**** ? > on chords.? (new emphasis) > > Unfortunately, that's beyond my Scheme-fu, and I have no spare time right now > to climb that learning curve.
We're in the same boat there. In fact, I'm not even sure I know how to write the specifications for what I would want such a function to do, and what it's interface should be. "Minimum accidentals" is not always my criterion of choice. There are times when a C# 7 chord (V chord of F#, 6 sharps) is fine, and there are other times when I'd rather call it a Db 7 (V chord of G-flat, 6 flats). Can \naturalizeMusic be made to consider the key signature that is in effect at the time? Even so, I have a chart in several flats where I just can't bring myself to use a C-flat 13 chord, and instead I call it a B 13, even though the melody note is clearly a G-flat. That's not minimum accidentals, it's just personal preference. I have zero idea how to begin spec'ing such a function for automagic conversion, let alone implement it. I get the feeling that this begins to encroach on certain topics posted recently by Peter Gentry, and I have to salute him for making the time to dive headfirst into the details of Scheme, but as you say, I don't have the time right now, nor the motivation, really. \tag works well enough for my needs, but I was puzzled to learn that simultaneous music << \tag #'a {} \tag #'b {} >> doesn't work in chordmode. That makes me have to use some klunky work-arounds when extracting a fixed number of measures from chordmode music that contains tags. Btw, thanks for the pointer to chord-entry.scm -- I'll have a read. In the meantime, I hope my original question will continue to attract the collective brain cycles of the list. I can anticipate at least one question: q1) how would simultaneous chord music be engraved? a1) Selfishly, I don't need it to -- I strip out the unwanted tags, leaving only one remaining alternative before it gets engraved. So the engraver could throw an error if it was asked to engrave simult. chord music, if that were convenient. Or another possibility is that it could just overwrite the chord markup, with multiple markups one on top of the other. It'd make a big blob in the chord staff, but again, I don't care because I don't anticipate ever passing simultaneous music to the engraver. But I would like to be able to specify simultaneous chordmode music and then post-process the tags out before handing the music off to the engraver. If the only reason this syntax has never been allowed is because there's no way to engrave it, I'd be delighted to simply have the syntax be allowed, and have the engraver puke with a descriptive error message if I forget to strip the simultaneous music out. ( ... meanwhile ... ) I must thank you again, Kieren, because in the time it's taken me to consider and draft this reply, it's given me some insight on where the crux of my original problem lies. \ChordNames contexts can indeed support simultaneous music, I have learned. It is specifically \chordmode which does not. Also, I have learned what Lily does with simult. chords: she combines all the simultaneous notes, and tries to interpret that set of pitches as best she can, most often resulting in a number of strange chord alterations. Compilable example attached! It's still somewhat klunky, but it does at least meet my test of not artificially lengthening the number of beats/measures of music. Thanks for getting the thought processes going! Jim > But I?m sure someone out there could make it work without too much trouble. > If you want to take a stab at it yourself, files like chord-entry.scm will > give you lots of ideas on how to manipulate chords. > > Cheers, > Kieren. > _______________________ > > Kieren MacMillan, composer > www: <http://www.kierenmacmillan.info> > email: i...@kierenmacmillan.info
\version "2.18.2" music = \new Staff { gis'1 << \tag #'(a c) c' \tag #'(b d) bis >> } seqChanges = \new ChordNames { \chordmode { gis1:maj7 } \tag #'a \relative c' <c e g> \tag #'b \relative c' <bis disis fisis> \tag #'c \chordmode { c1 } \tag #'d \chordmode { bis1 } } simChanges = \new ChordNames { \chordmode { gis1:maj7 } << \tag #'a \relative c' <c e g> \tag #'b \relative c' <bis disis fisis> \tag #'c \chordmode { c1 } \tag #'d \chordmode { bis1 } >> } \markup "Sequential tags make the music expressions have unequal length" \score { << \seqChanges \music >> } \markup "Simultaneous tags make the music expressions the same length" \score { << \simChanges \music >> } \markup "Tag a" \score { << \keepWithTag #'a \simChanges \keepWithTag #'a \music >> } \markup "Tag b" \score { << \keepWithTag #'b \simChanges \keepWithTag #'b \music >> } \markup "Tag c" \score { << \keepWithTag #'c \simChanges \keepWithTag #'c \music >> } \markup "Tag d" \score { << \keepWithTag #'d \simChanges \keepWithTag #'d \music >> }
xx.pdf
Description: Adobe PDF document
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user