lilypond-user
[Top][All Lists]
Advanced

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

Re: Staff Tab notation support?


From: Carl Sorensen
Subject: Re: Staff Tab notation support?
Date: Sun, 10 Jan 2010 20:39:02 -0700



On 1/10/10 9:25 AM, "Eric Knapp" <address@hidden> wrote:

> Thanks for the offer, Carl. I have attached a clip of the current
> state of the notation system. There is a custom music font in
> PostScript Type 1 and TrueType here:
> http://www.arthurdurkee.net/stickfonts.html.
> 
> StaffTab is a way to combine standard music notation with guitar-like
> tablature notation. Since the Chapman String has 10 or 12 strings the
> lines on a piano staff are used to represent the strings. Custom
> notehead shapes indicate fingerings, small lines on the staff lines
> indicate strings, small numbers above and below the staves indicate
> frets. This allows a complete communication between composer and Stick
> player. For those who read standard music notation, this extra
> information gives the full intention of the composer. Many Stick
> players come from guitar or electric bass and are more comfortable
> with tabs. StaffTab allows those folks to get learn the piece and also
> learn some standard notation along the way.
> 
> I have annotated the StaffTab sample I attached with more details. I
> teach computer programming at a college and have been lightly working
> on this for a few years now. However, I'm a busy teacher and dad, and
> I can't spend a huge amount of time on this. With a little guidance, I
> would be much more inspired. I was starting to feel like the only way
> I could implement was to learn Scheme and write a function that
> surrounds normal lilypond notation that includes fingerings and
> changes the noteheads and takes a guess as to the string. Then I could
> have some way to indicate strings when the function guessed wrong.
> 
> Is this the only approach that would work? Is there an easier way? My
> goal is for this is probably a similar goal to the lilypond community.
> I want musicians who are computer literate to be able to use this, not
> just computer programmers.
> 
> Thanks for all the input I've received so far, I'm looking forward to
> making progress on this project.

Eric,

I don't think that this is hugely difficult to make work.  (Of course, I'm
not doing it, so it's easy for me to say that -- talk's cheap).

Let me see if I understand correctly.  The staff lines in Staff Tab have two
different purposes.  First of all, they represent normal staff lines for the
notes, which show up as real notes but with special heads that indicate the
finger to be used.  Secondly, the staff lines represent the strings on which
the notes are played, and the rectangles that show up in the note column
show which string should be played.

The numbers above or below the staff represent the fret for the strings that
are shown on the staff lines below.

Is this right?

If so, then here are some suggestions:

1)  The string indications could easily be created by a
staff-string-engraver.  (This engraver could be written in Scheme, now that
Han-Wen has given us the capability of writing engravers in Scheme).  It
would listen to string-number-events, and create the appropriate rectangle
stencils (and rectangle stencils are trivial to make).

2) The fret number indications could be created by a fret-number-engraver.
It would listen to both note-events and string-number-events, and would
calculate the fret numbers based on the note, string number, and string
tuning.

3) The note-heads could be created by a staff-tab-note-engraver.  It would
listen to note-events and fingering-events, and would adjust the note-head
shape based on the fingering events.

Putting the ChordNames context between the two staffs is no problem.

To get the nicely lined up fret numbers, we may want to make a FretNumbers
context, which would contain the fret-number-engraver.

With all this in place, I'd assume that the LilyPond file would look
something like this

leftHandMusic = {...} (include the string and finger notations in the music

rightHandMusic = { ...} (again, include the string and finger notations)

chordMusic = \chordmode {...}

\new StaffGroup {
  <<
    \new FretNumbers { \rightHandMusic }
    \new Staff {\rightHandMusic }
    \new ChordNames { \chordMusic }
    \new Staff { \leftHandMusic }
    \new FretNumbers { \leftHandMusic}
 >>
}

\context Staff {
   \consists staff-tab-note-engraver
}

I think all of the infrastructure to do this easily is currently available
in LilyPond.  If you're willing to give it a shot, let's give it a try.

Thanks,

Carl

P.S. The leftHandMusic and rightHandMusic callouts in the above are based on
my observation of the video on the Chapman Stick website, where it appears
that the low notes are played with the left hand and the high notes are
played with the right hand.  If that's wrong, you could easily fix it.







reply via email to

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