Thank you both so much for these two fixes, now I can finish the rest of
the song!!

On Sat, Jun 27, 2020 at 2:34 AM Pierre Perol-Schneider <
pierre.schneider.pa...@gmail.com> wrote:

> Hi Stacy,
> As Lukas said, do you really need the relative mode ?
> I'd do:
>
> \version "2.18.2"
>
> \score {
>   \new TabStaff {
>     \set Staff.stringTunings = \stringTuning <a,,, e,, a,, e, a, cis>
>     \tabFullNotation
>     \transpose c c, {
>       <<
>         { s4
>           \override NoteColumn.ignore-collision = ##t
>           \harmonicByRatio #1/4  <e\3 a\2>2. | }
>       \\
>         { b,2.\5 b,4\5 | }
>       \\
>         { r4
>           \shiftOff
>           \harmonicByFret #7 cis2.\1 | }
>       >>
>     }
>   }
> }
>
> Cheers,
> Pierre
>
> Le sam. 27 juin 2020 à 08:55, Lukas-Fabian Moser <l...@gmx.de> a écrit :
>
>> Hi Stacy,
>>
>> I'm not familiar with harmonics notation or tabulature, but I think both
>> of your problems can be solved.
>> Am 27.06.20 um 01:05 schrieb Stacy Fatemi:
>>
>> Hey list,
>>
>> I'm notating a piece for 6-string bass with heavy harmonic use, including
>> chords with different fretted harmonics. Attachment 1 (the hand-drawn bar)
>> shows how I want this measure to go: root notes in voice 2, harmonics in
>> voice 1, with a chord composed of a 7th fret harmonic on the 1st string and
>> 5th fret harmonics on the 2nd and 3rd strings. Here are the problems:
>> This presents us with two more problems:
>>
>> 2. The harmonics in the first voice are severely augmenting the fret
>> number in the second voice (it's not a huge issue in this tiny example, but
>> in the full file I'm working on I have a line of 78 commas in a row for the
>> first note of the second file to get it on the right fret), and
>>
>> This is caused by the use of \relative mode.
>>
>> Here's why: In \relative mode, the absolute pitch of each note you enter
>> influences the next entered pitch (insofar as any pitch entered _without_ '
>> oder , is taken to be at most a fourth away from the last entered pitch,
>> and ' and , only add/substract octaves). Now, what you probably did not
>> expect: This does not keep track of parallel independent voices. Instead,
>> your very high note \harmonicByRatio #1/4 <e\3 a\2>2. makes LilyPond
>> assume that the next note encountered in your source file is to be taken
>> relative to that high note.
>>
>> There are verious ways of solving this problem, of adding a bunch of
>> ,,,,,'s to get back to the normal octave is probably not the best. One way
>> would be to start a new \relative environment for your lower voice:
>>
>> \relative c,, { b'2.\5 b4\5 | }
>>
>> But probably it would be best to not use relative mode at all, but
>> instead use fixed mode. To be honest, I spent the last half an hour trying
>> to figure out what happens behind the scene for your first command,
>> \harmonicByRatio #1/4 <e\3 a\2>2. in \relative mode. I'm not sure yet, but
>> I think that \harmonicByRatio is seriously broken when used for chords in
>> \relative mode.
>>
>> (Anybody who wants to try: Compile #(calc-harmonic-pitch #{ c' #} #{
>> \relative <c' f'> #}. The function calc-harmonic-pitch should not do
>> anything when given c' as "harmonic pitch", if I understand the source code
>> in tablatura.scm correctly.)
>>
>> But I admit that I do not yet understand the logic by which the fret
>> numbers for harmonics are calculated. I'm not that familiar with the bass
>> (and so I have to calculate rather a lot), but when I just tried to define
>> stringTunings for the cello (which I'm very familiar with) I could
>> understand usual pitches easily, but could not get my head around the
>> displayed tabs for harmonics. But maybe I will.
>>
>> 3. The harmonics don't form a coherent chord, but rather a staggered
>> display with a collision between the stem from voice 1 and the note from
>> voice 3.
>>
>> This is not a bug but a feature: Normally, you want to be able to
>> distinguish the first and the third voice. But not here.
>>
>> The construction << ... \\ ... \\ >> is a bit involved in that it does
>> _several_ things: It creates independent voices, yes, but it also sets
>> defaults for shifting and stem direction (namely, the first voice gets a
>> \voiceOne, which should be read as "should be layouted as a first voice,
>> e.g. with \stemUp etc."). In more complicated situations, it's often more
>> convenient not to use the \\'s but to create the voices for yourself and
>> setting them up manually:
>>
>> <<
>>   \new Voice { \voiceOne ... }
>>   \new Voice { \voiceThree .... }
>> >>
>>
>> But the easiest remedy in your situation is:
>>
>> \version "2.18.2"
>>
>> \score {
>>   \new TabStaff
>>     {
>>     \set Staff.stringTunings = \stringTuning <a,,, e,, a,, e, a, cis>
>>     \tabFullNotation
>>     \relative c,, {
>>     <<
>>       { r4 \harmonicByRatio #1/4 <e\3 a\2>2. | }
>>     \\
>>       \relative c,, { b'2.\5 b4\5 | }
>>     \\
>>       { s4 \voiceOne \harmonicByFret #7 cis2.\1 | }
>>     >>
>>       }
>>     }
>> }
>>
>> Note that I also changed r4 into s4 - s4 behaves like a rest but does not
>> print anything, and we only need one actual printed rest.
>>
>> Best
>> Lukas
>>
>

Reply via email to