On 20 November 2017 at 15:18, David Kastrup <[email protected]> wrote:
> Gianmaria Lari <[email protected]> writes:
>
> > On 20 November 2017 at 12:00, David Kastrup <[email protected]> wrote:
> >
> >> Gianmaria Lari <[email protected]> writes:
>
> >> > Is there any (simple) way to rewrite it in a more concise way like
> >> > this for example?
> >> >
> >> > \repeat unfold 7 {
> >> > \modalTranspose c "c+index" \scale \pattern
> >> > }
> >>
> >> What is simple?
> >>
> >> \version "2.18.0"
> >>
> >> scale = {c d e f g a b}
> >> pattern = {c d e f}
> >>
> >> \fixed c' {
> >> #@(map
> >> (lambda (p)
> >> #{ \modalTranspose c #(ly:make-pitch -1 p) \scale \pattern #})
> >> (iota 8))
> >> }
> >
> > Thank you David, it works perfectly!
> >
> > Is there any way to encapsulate it in a function to avoid to write all
> the
> > code any time I need it?
>
> What is "all the code"? I really have no idea what makes you consider
> something simple (and your "explanation" below does not help at all
> since it is tantamount to "simple depends on the viewer's metrics").
> I also have no idea what part of the above you consider "it" to be
> encapsulated and what you consider variable.
>
> > Regarding "simple". Never think seriously about what I mean with
> "simple".
> > Maybe:
> >
> > Suppose that you know well how to informally solve a problem. Now
> > suppose you have to describe your solution in a formal and algorithmic
> > way.
> >
> > Between many formal solution I would say that the simplest one is that
> one
> > that better overlap the informal solution.
> > g.
>
> --
> David Kastrup
>
I'm sorry I have not been clear. If you have a look to the following source
you'll see that the same code is repeated three times (only the variable
'pattern' changes).
\version "2.18.0"
scale = {c d e f g a b}
pattern = {c d e f}
\fixed c' {
#@(map
(lambda (p)
#{ \modalTranspose c #(ly:make-pitch -1 p) \scale \pattern #})
(iota 8))
}
pattern = {f e d c}
\fixed c' {
#@(map
(lambda (p)
#{ \modalTranspose c #(ly:make-pitch -1 p) \scale \pattern #})
(iota 8))
}
pattern = {a c e g}
\fixed c' {
#@(map
(lambda (p)
#{ \modalTranspose c #(ly:make-pitch -1 p) \scale \pattern #})
(iota 8))
}
I was wondering if it was possible to to avoid this redundancy.
And yes, forgot what I tried to define as simpler. In this case it only
makes things more complicated...
Thank you, g.
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user