Kieren MacMillan <kieren_macmil...@sympatico.ca> writes: > Hi all, > > I’m no Scheme expert, of course… but it seems there should be a > relatively easy way to code a music function which says “take all > pitches [entered as ’naturals’] and add any accidentals which exist in > the corresponding key signature entry for that pitch class”, no? i.e., > if the input is ‘c’, and there’s a C# in the key signature, output > cis; if the input is ‘d’, and there’s a Db in the key signature, > output des; etc.
What _is_ the current key signature? \key a \major \transpose c d { \key f \major \transpose d f { a b c d e f g } } What should the result be? Is f \major supposed to be fis \major ? Are we talking about \transpose cis d or \transpose c d ? You can define rules LilyPond will be able to follow, sure. But at what point will they stop making sense to humans and other tools? > If this input were wrapped in a function, then the final input code > would really be no less readable/manipulable than if it were wrapped > in a \transpose. > > Just a thought, Getting dogmatic about LilyPond's input language and declaring it as God-given at least has the advantage that one avoids extended discussions about recurring bad ideas every three months. Where would Bach's "Kunst der Fuge" had been if "b a c h" had not spelled out a theme unambiguously? I'm sure if I think hard enough, I can come up with more strained references to authority to bolster my case. "I am no expert but it seems there should be a relatively easy way" is a good way to start sentences that will cause actual experts to go into conniptions. "You don't want to go there" is something nobody ever believes me, so I have to settle for "if you want to go there, you'll need to learn how to do it yourself, and by the time you know how to do it, you'll understand why it's a bad idea". -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user