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 >> >