lilypond-user
[Top][All Lists]
Advanced

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

Re: Combining chord durations


From: Johan Vromans
Subject: Re: Combining chord durations
Date: Mon, 21 Oct 2013 23:30:57 +0200

[Quoting Jim Long, on October 21 2013, 11:42, in "Re: Combining chord "]
> The reason your layout gets stretched is roughly because
> LilyPond's chord-suppression logic for repeated chord markups
> effectively makes the chord markup "transparent" rather than
> eliminating it entirely.  Thus even the invisible chords still
> take up space in the layout.

Yes, that's what I guessed.

> I regret that I can offer only some informal, even ugly
> suggestions:

Don't take it personally ;)

You've got some interesting suggestions.

> 3) Instead of #2, and again I haven't tested this (much), could
> tremoli help you?

No, they do not render as individual notes in the midi.
E.g.

  \repeat tremolo 6 ees8  \repeat tremolo 2 bes8  |

is rendered in the midi as

  ees2. bes4

> ... if you are fluent in Scheme, perhaps you can write a function
> 'wrapChord' which accepts a chordmode chord identifier x and wraps
> it in:

Actually, this was something I've been thinking of.

I didn't mention that in my .ly templates, I always have two tags,
scoreOnly and midiOnly that do just that: filter the music depending
on whether paper score or midi is generated.

  allMusic = {
    ...
  }

  %% Generate the printed score.
  \score {
    \removeWithTag #'midiOnly \allMusic
    \layout {
      ...
    }
  }

  %% Generate the MIDI.
  \score {
    \removeWithTag #'scoreOnly \unfoldRepeats \allMusic
    \midi {
      ...
    }
  }

So I tried to write a function that would expand one or two chords
according to a pattern. For example

  \pata ees      ->  ees8 q q q q q q q
  \patb ees bes  ->  ees8 q q q bes q q q
  \patc ees bes  ->  ees8 q q q q q bes q

(These patterns would cover 96% of the chords of my project.)

However, the expansion is to depend on the tags, so to take the third
example, the expansion would become

  \patc ees bes  ->  \tag #'midiOnly  { ees8 q q q q q bes q }
                     \tag #'scoreOnly { ees2. bes4 }

After some experimenting I gave up and used an external preprocessor
to produce two distinct harmonies, one for the score and one for the
midi. 

It would have been a nice experiment, though...

-- Johan



reply via email to

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