Notes in staff=invisible while tablature=visible
Djeem Djuheerme <[email protected]>
| Newsgroups | gmane.comp.gnu.lilypond.general |
|---|---|
| Message-ID | <[email protected]> |
I asked copilot for a solution but I want to get away from AI if possible. So I didn't follow up to get tweaks to its two suggestions (one didn't work; one I can't get to compile).
For mountain dulcimer tablature, we normally only show the melody in the staff, even if we are to strum the drones (strings 1 and 2).
This would keep the staff cleaner; and because of the ledger lines, more vertically compact in a perfect solution.
Naturally, I would want to see some of the notes, hide others.
The copilot-suggested function won't compile where invoked because something "is not a rhythmic event".
I thought I got it to compile and hide both the note and the tab once, but I can't get there again, and wasn't what I wanted.
Sorry if it's not where to start, but here is a tiny score. The structure comes from using TablEdit's 'export as lilypond'
\version "2.24.0"
\header {
title="Dog Treed a Possum"
subtitle=""
composer="trad"
encoder="J"
encodingsoftware="TablEdit"
tagline="Created with TablEdit 3.06 a1d 64-bit https://tabledit.com/"
}
%this function won't compile in a simpler score even if not invoked: Wrong type for argument 2. Expecting music, found "hiddenNote"
% it does compile in this score **only if not invoked.** Lotta good, eh?
%hiddenNote =
%#(define-music-function (pitch dur) (ly:pitch? ly:duration?)
% #{
% \once \override NoteColumn.ignore-collision = ##t
% \once \override NoteColumn.X-extent = #'(0 . 0)
% \hideNotes
% $pitch$dur
% \unHideNotes
% #})
PAVA = {
\tempo 4 = 120
\time 2/2
\key d \major
s2 s4 fis'8 \3 e' \3 | % 1
{ <d' \3 a \2 d \1>4^"D" <fis' \3 a \2 d> <a' \3 fis' \2 d \1> <d'' \3 fis' \2> | % 2
}}
\score { <<
\new StaffGroup <<
\new Staff <<
\clef "G"
\override Staff.StringNumber.transparent = ##t
\set Staff.instrumentName="md"
\PAVA
>>
\new TabStaff <<
\override TabStaff.Stem.transparent = ##t
\override TabStaff.Beam.transparent = ##t
\override TabStaff.TupletNumber.transparent = ##t
\override TabStaff.TupletBracket.transparent = ##t
\override TabStaff.NoteColumn.ignore-collision = ##t
\override TabStaff.Rest.transparent = ##t
\set Staff.stringTunings = \stringTuning < d' a d>
\set Staff.tablatureFormat = #fret-letter-tablature-format
\set Staff.fretLabels = #'("0" "0+" "1" "1+" "2" "3" "3+" "4" "4+" "5" "6" "6+" "7" "7+" "8")
\set Staff.instrumentName="dad"
\new TabVoice { \PAVA }
>>
>>
>> }