lilypond-user
[Top][All Lists]
Advanced

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

Re: TabStaff feature requests


From: Steve Yegge
Subject: Re: TabStaff feature requests
Date: Tue, 23 Nov 2010 22:13:19 -0800

Hi Patrick, this sounds awesome.  I think it will be very useful.

However, I also think that Marc Hohl's suggestion is more general
and would in fact cover many more of the use cases I have in mind.
I think it might be appropriate to implement both of them.

Marc's suggestion from earlier in the thread, if I may un-fork here, is:

> Hm, I don't know how you would invoke such a feature - perhaps like
> (pseudo-syntax!)
> \useStrings #'(3 5)
> to tell lilypond only to use these strings within the fret number calculation?
> Sounds interesting, but I don't know how to implement it.

I had the same idea immediately after sending my original post.
The idea is to subset the available strings -- simply take up to N-1
of them out of the picture.  The syntax Marc suggested is ideal,
because it lets you specify non-adjacent strings (as opposed to,
say, specifying a string range, which fails on the examples below.)

Here's why his idea works better for me than chord shapes.  Consider
the following passage of consecutive ascending thirds, intended to be
played on the fourth and fifth strings:

<c e> <d f> <e g> <f a>
<g b> <a c> <b d> <c e>

Your patch for using chord shapes may not cover this whole passage
because they change shape!  The fingerings would be, for example:

<c-2 e-1> <d-3 f-1> <e-3 g-1> <f-2 a-1>
<g-2 b-1> <a-3 c-1> <b-3 d-1> <c-2 e-1>

Unless I'm mistaken this would require up to five applications
of your chord-shape instructions, at which point you're little better
off than when setting TabStaff.minimumFret on roughly every other
chord change (which is what it works out to in practice.)

It could get pretty bad in pathological situations where you have
minor mode scales with long intervals, or mid-progression key
changes, or a temporary switch to fourths or even sixths between
thirds -- all of which I have seen in the violin music I'm arranging
for guitar.

And my example is just thirds.  I also have to arrange progressions
of fourths, sixths, ninths, tenths, and hybrids/mixtures that move
along a predefined set of strings for many beats.  Even when your
feature does the right thing for me, it's conceptually simpler to write
(and think) in terms of which strings you're using rather than which
shapes your hand is taking.

Oh yeah, and another big category is pedal tones (for lack of a more
precise term for it -- even though the low note isn't sustained, it's a
similar effect to pedal tones).  I have lots of music that looks like this:

<d f'> <d g'> <d a''> <d f'> ...

and so on, where you're playing an elevated melody over an open
string.  A classic example of this technique is the opening of AC/DC's
"For Those About To Rock", which uses the open-B as the pedal tone.

The tab calculator is useless for this situation, and I don't see
how chord shapes would help even if it were user-extensible.  But the
useStrings feature would solve it as neatly as it solves the other cases.
 
Don't get me wrong -- I think your feature is going to be wonderful
for most idiomatic guitar music.  But there are lots of situations it won't
cover, so I think having a more general mechanism would also be
very useful.

Thanks,

-steve

On Tue, Nov 23, 2010 at 1:09 AM, Patrick Schmidt <address@hidden> wrote:
Hi Steve,
Am 23.11.2010 um 08:37 schrieb Steve Yegge:


Hi all,

The TabStaff is amazingly cool.  I'm not a big tab user myself,
but for people who want tabs, LilyPond makes it easy to add them.

I've been busily adding tabs for a few months and have some feature
requests to put into the queue if possible.

1) Setting fixed strings to use for ascending/descending chords.
Currently it's nontrivial to specify tab positions for something like:

<c c'> <d d'> <e e'> <f f'>
<g g'> <a a'> <b b'> <c c'>

I've found it's most convenient to append the actual strings after
every chord, hence:

<c c'>\5\3 <d d'>\5\3 <e e'>\5\3 <f f'>\5\3
<g g'>\5\3 <a a'>\5\3 <b b'>\5\3 <c c'>\5\3

This is pretty verbose, and only gets worse with more notes:

<c-4 e-3 g-1 c-1>4.\6\5\4\3
<d-4 f-2 a-1 d-1>8\6\5\4\3
<e-4 g-2 b-3 e-1>4.\6\5\4\3
<f-4 a-3 c-1 f-2>8\6\5\4\3
<g-4 b-3 d-1 g-2>4.\5\4\3\2
<a-4 c-2 e-1 a-3>8\5\4\3\2
<b-3 d-1 f-1 b-1>4.\5\4\3\2
<c-4 e-3 g-1 c-2>8\5\4\3\2

Of course with aliases for setting the TabStaff minimumFret you
can make full chords less verbose, but there seems to be no good
way around specifying strings for octave runs.

2) Have the automatic tab calculator understand the -0 fingering.
Currently if you do something like this:

\relative c' {
 \set TabStaff.minimumFret = #2
 <d'-0 a'-2 d-3 f-1>
}

It will choose strings 5, 4, 3, 2.  Obviously in this case you could
just set the minimum fret to #0, but this may be an exception to a
passage that is otherwise all in position 2.

Moreover the calculator gets confused by open chords in higher
positions, e.g.

\relative c {
 <e'-2\5 ges-1 d'-3 b-0 b'-4>
}

It picks correct strings for all the notes except the open b, which
is ignored (and for which a warning is issued).  You can fix it
by specifying the remaining strings:

<e-2\5 gs-1 d'-3 b-0 b'-4>16\4\3\2\1

But it seems like having the tab calculator understand open string
fingerings would solve nicely a number of situations like this.
I am working on a solution that will answer quite a few of your requests. You will be able to choose a certain chord shape for the chords you enter. You won't have to specify strings with string number indications or minimum frets. e.g. for ascending/descending octaves you will just have to enter:

\aShape

<c c'> <d d'> <e e'> <f f'>

or

\eShape

<g, g> <a, a> <b, b> <c, c>

With \aShape you will get chords with the root on the 5th string. With \eShape you will get chords/octaves with the root on the 6th string. I have already defined powerchords, quite a few of the four basic triads and some of the ten seventh chords including their inversions. I can add octaves and I might add open chords in higher positions later but it's going to take a while...



3) Being able to specify the frets for harmonics.  I know there's been
some talk about this, but it's a pretty big deal as there's no workaround.
Anyone planning on publishing in the next few months (e.g., me :)
is going to be out of luck.
see Marc Hohl's patch.

Cheers,

patrick

Cheers,

-steve
_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user



reply via email to

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