lilypond-user
[Top][All Lists]
Advanced

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

How to define a macros for writing predefined chords of arbitrary length


From: Mojca Miklavec
Subject: How to define a macros for writing predefined chords of arbitrary length?
Date: Mon, 30 Jan 2017 19:16:42 +0100

Hi,

I can easily use a macro to create chords of predefined lengths, say

    chord_F = { <f a c'>4 }

but the functionality is limited for what I want to achieve.

On some instruments (like accordion) one gets that chord by pressing a
single button and I need some reasonable way to enter them without
messing everything up.

(Some songs consist of only two different chords and I find it tedious
to keep entering <f a c'> <e g c'> over and over again, making lots of
mistakes, if I could assign that to just "F" and "C" or numbers 4 and
2. \somelongwordF and \somelongwordC are still better than writing out
the full chord; the compiler would catch it if I make a spelling
mistake.)

What I would like to be able to do is:

- specify lengths
    \chord_F4 \chord_F2 or <\chord_F>4 <\chord_F>2

- combine chords with other pitches (in theory perhaps with other
chords as well, but I never needed that so far)
    <f, \chord_F>8


To get things like

    chord_F = { f a c' }
    melody = {
        f,8 <\chord_F>8 c8 <\chord_F>8 |
        <f, \chord_F>2
    }

What options do I have to achieve the desired functionality? (I don't
care about the exact syntax as long as it would allow me to achieve
consistency.)


Thank you very much,
    Mojca

(Please CC me.)

PS: At some point in the future I would ideally like to be able to
prepare single input to get both of the following modes as output (but
that's already the next step):

    \new Staff = "staff" <<
      \new Voice = "bass" {
        \clef bass
        \repeat unfold 3 { f,8 <f a c'> c, <f a c'> | } % push mode
        \repeat unfold 4 { g,8 <e g c'> c, <e g c'> | } % pull mode
        <f, f a c'>2 | % push mode
      }
    >>

    \new FiguredBass {
      \figuremode {
        \repeat unfold 3 { <4>8 <3> <2> <3> | } % push mode
        \repeat unfold 4 { <2>8 <3> <4> <3> | } % pull mode
        <4 3>2 | % push mode
      }
    }



reply via email to

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