On 20 November 2017 at 15:18, David Kastrup <d...@gnu.org> wrote: > Gianmaria Lari <gianmarial...@gmail.com> writes: > > > On 20 November 2017 at 12:00, David Kastrup <d...@gnu.org> wrote: > > > >> Gianmaria Lari <gianmarial...@gmail.com> 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 lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user