> Thanks. This is good feedback. I agree that an extra argument could
> be useful. I think of this operation as transposition followed by
> inversion, so Pal's example could be implemented this way:
>
> %% ------------------------------------------------
> modalTransposedInversion =
> #(define-music-function (p l from to-pivot scale music)
> (ly:music? ly:music? ly:music? ly:music? )
> #{
> \modalInversion $to-pivot $scale \modalTranspose $from
> $to-pivot $scale $music
> #})
>
> scale = {c g}
> original = { c4. c'8 g'4. g8 }
> desired = { g4. g,8 c,4. c8 }
> {
> \clef bass
> \original
> \desired
> \modalTransposedInversion c g \scale \original
>
> }
> %% ------------------------------------------------
>
> So it could be left to the user, but I imagine that transposition will
> be wanted more often than not, so I have no problem with altering the
> definitions accordingly.
yes; I just thought that practically the same code can
be used to get the final result, so why not.
> In practice, it will be more efficient to code it as Pal suggests,
> with two index operations -- although I have no idea whether the
> efficiency gain would be significant in terms of LilyPond's total
> processing overhead.
by the way efficiency: my automatic reaction is that
validity check should be moved out from the lambda
expression into the user level function (or just one
level below), but I have absolutely no experience.
> I do like arranging and naming the arguments as suggested above. I
> think it will simplify documentation and usage if the arguments to
> \modalTranspose and \modalInversion (or \modalTransposedInversion if
> you prefer) are as congruent as possible, so that we can have
>
> \modalTranspose from-pitch to-pitch ...
> and
> \modalInversion from-pitch to-pivot ...
>
> I also find that this corresponds to the way I think about it
> musically. I see the original sequence, then imagine where I want the
> first pitch of the inverted sequence to be.
>
> Does anyone have a strong feeling whether we should rename
> \modalInversion to \modalTransposedInversion? Or perhaps leave
> \modalInversion as is and offer \modalTransposedInversion as a
> separate function?
to me inversion is enough, since, as you say, changing
the pivot (whether it's a scale element or not) means
transposition, i.e. transposition is unseparable from
inversion.
p
_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel