In case anyone else would find this useful.  Thanks to everyone's help I've got this working the way I want.

All backing notes common to all instruments regardless of tuning are in one variable.

Instrument specific (and tuning specific) fret and string details are split out.

Also any note runs that may only make sense for a given instrument can also be split out.

Example code below.  Now I will start putting some repetitive bits into include files and start filling in all the real music and specific instrument details.

Thanks, walt

%%%%%%%%%%%%%%%%%%


\version "2.25.22"

\language "english"

steelGuitarSixStringCSixTuning = \stringTuning <c e g a c' e'>

ros = \set TabStaff.restrainOpenStrings = ##t
mfZero = \set TabStaff.minimumFret = #0
mfTwo = \set TabStaff.minimumFret = #2
mfThree = \set TabStaff.minimumFret = #3
mfFive = \set TabStaff.minimumFret = #5
mfSeven = \set TabStaff.minimumFret = #7

bckngNotes = \relative c' {
  d,8 e f g a b c d |
  d, e f g a b c d |
  s1 | % just this part unique per instrument.
}

gtrBackingNoteDetails = {
  \set Staff.stringTunings = #guitar-tuning |
  \ros
  s8\6 s2..  |  % want first note on 6th string
  \mfThree s8 s s s \mfFive s s s s\3 |
  \mfZero fs'1 |
}

stlBackingNoteDetails = {
  \set Staff.stringTunings = \steelGuitarSixStringCSixTuning  |
  \ros
  s8 s8\6 s2.  | % want second note on 6th string
  \mfTwo s8 s s s \mfFive s s s s\3 |
  \mfFive fs'4 \glissando a'2.\2 |
}

fullScore = {
  <<
    \new TabStaff{
      \new TabVoice {
        <<  \bckngNotes \stlBackingNoteDetails >>
      }
    }
    \new TabStaff{
      \new TabVoice {
        << \bckngNotes \gtrBackingNoteDetails >>
      }
    }
  >>
}

\score{
  \fullScore
}

%%%%%%%%%%%%%%%%%%


Reply via email to