Showing posts with label piano. Show all posts
Showing posts with label piano. Show all posts

Dec 8, 2015

A Small Holiday Gift

So, I've not been able to keep this blog as up-to-date as I'd like to. To remedy that a little, here's a small holiday gift to you. This gift was originally given by Mark Adler on the Finale Blog, but since he offered it freely, I decided to pass it along, with a little extra for all the LilyPond users out there.


Nov 12, 2014

Piano RH/LH Brackets

Sometimes when I'm playing the piano or organ (especially the organ, since I'm not that great with the pedals yet), I need to mark that a high note in the lower stave should be played with the right hand. Here's an example of this situation:
For me, the indicated note is easily reachable with the right hand. So, how do I mark it that way? Well, in the Notation Reference, in the Fingering Instructions section, I found an example of a custom fingering markup. Normally, if you want to indicate that a note be played with a particular finger you use the "-N" syntax where N=1, 2, etc., and you'd get something like this:

\relative c'' { 
  c4-1 d-2 f-4 e-3 
}
Pretty simple. If you need a more complex instruction (like a finger-substitution), we can use the built-in "\finger" macro that allows us to put in a "\markup" object:

\relative c'' {
  c4-1 d-2 f\finger \markup \tied-lyric #"4~3" c\finger "2 - 3"
}
Nice! Now, we take this a step further. I decided to create a bracket (or half-bracket, really) using some simple post-script commands within a "\markup" object:
lhMark = \markup { 
  \path #0.1 #'((moveto -1 0)(rlineto 0 1.5)(rlineto 0.5 0))
}
rhMark = \markup { 
  \path #0.1 #'((moveto -1 0)(rlineto 0 -1.5)(rlineto 0.5 0))
}
This is in the shape of an "L" and is designed to go on the LEFT side of the notehead. However, the default position is ABOVE the notehead (or chord, if it's part of one). So, in order to place it NEXT to the note, I need to change the "fingeringOrientations" property, like so:
\set fingeringOrientations = #'(left)
Putting these together, we get something like this:
\relative c {
  \clef bass
  \set fingeringOrientations = #'(left)
  <f, a'\finger \rhMark>4
}

Let's take this a step further. Suppose I now want to indicate "R.H." next to the bracket. This can be done pretty easily by using the "\concat" function within the "\markup" object, which concatenates two expressions, like this:
lhMarkText = \markup { 
  \concat {
    \override #'(font-encoding . latin1) \italic "L.H. " 
    \path #0.1 #'((moveto 0 -0.5)(rlineto 0 1.5)(rlineto 0.5 0))
  }
}
rhMarkText = \markup { 
  \concat {
    \override #'(font-encoding . latin1) \italic "R.H. " 
    \path #0.1 #'((moveto 0 1)(rlineto 0 -1.5)(rlineto 0.5 0))
  }
}

\relative c {
  \clef bass
  \set fingeringOrientations = #'(left)
  <f, a'\finger \rhMarkText>4
}
This can get even more involved if we need to actually bracket a section of a chord, but following the snippets above, we can do crazy things like this:
rhBracket = \markup { 
  \concat {
    \path #0.1 #'((moveto 0 -1.75)(rlineto 0.5 0)(rlineto 0 4.25)(rlineto -0.5 0))
    \override #'(font-encoding . latin1) \italic " RH" 
  }
}

lhBracket = \markup { 
  \concat {
    \path #0.1 #'((moveto 0 0.75)(rlineto 0.5 0)(rlineto 0 -3.25)(rlineto -0.5 0))
    \override #'(font-encoding . latin1) \lower #1.25 \italic " LH" 
  }
}

\new Staff \relative c, {
  \clef bass
  \set fingeringOrientations = #'(right)
  <e f bes\finger \lhBracket e\finger \rhBracket g b! dis>1\arpeggio 
}
There you go, all you piano/organ players! You may have to play around with the numbers (since there isn't a dedicated function to do this yet), but without too much effort, you should be able to get the job done.

If you are trying to do this and can't figure it out for your situation, send me an email.