lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How can I write simultaneous music in \chordmode?


From: Jim Long
Subject: Re: How can I write simultaneous music in \chordmode?
Date: Wed, 7 Jan 2015 16:03:37 -0800
User-agent: Mutt/1.5.23 (2014-03-12)

Y'know, one other syntactic oddity this has shown me is that
\chordmode requires the braces around its music expression, even
if it is a single chord:

\chordmode c1

is not okay, it has to be

\chordmode { c1 }

Not a problem, just a curiousity.




On Wed, Jan 07, 2015 at 03:46:39PM -0800, Jim Long wrote:
> 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:  address@hidden

> \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
>   >>
> }


> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user




reply via email to

[Prev in Thread] Current Thread [Next in Thread]