Filtrer un textspanner

Bonjour,
J'ai défini la fonction suivante pour afficher le numéro de la corde via un text scanner :
startStringNb =
#(define-event-function (string-number) (number?)
#{
\tweak spanner-id "string-nb"
\tweak bound-details.left.text \markup { \circle \number #(number->string string-number) \hspace{0.5} }
\tweak font-size -5
\tweak font-shape #'upright
\tweak style #'dashed-line
\tweak dash-fraction #0.5
\tweak dash-period #1.5
%etc.
\startTextSpan
#})

L'affichage est pertinent dans un \staff mais est inutile dans un \tabStaff en mode \tabFullNotation. Comment est-il possible de le désactiver dans un contexte \tabStaff activant \tabFullNotation ?

Bonjour,
\override TabStaff.TextSpanner.stencil = ##f


startStringNb =
#(define-event-function (string-number) (number?)
#{
\tweak spanner-id "string-nb"
\tweak bound-details.left.text \markup { \circle \number #(number->string string-number) \hspace{0.5} }
\tweak font-size -5
\tweak font-shape #'upright
\tweak style #'dashed-line
\tweak dash-fraction #0.5
\tweak dash-period #1.5
%etc.
\startTextSpan
#})

music = \relative {
      c'4-\startStringNb #1 d e f\stopTextSpan
    }
    
    \displayMusic
<<
  \new Staff {   \music  }
   \new TabStaff{  
\tabFullNotation 
\override TabStaff.TextSpanner.stencil = ##f
\music
  }
>>

Bonne nuit

ou bien dans un context layout

\layout { 
 \context { 
  \TabStaff  
  \override TextSpanner.stencil = ##f
 }
}

Merci @MartialR.
Cette instruction filtre tous les text spanner, là où je souhaiterais uniquement filtrer le text spanner qui a pour spanner-id "string-nb". Je souhaite en effet conserver l'effet du text scanner que j'utilise pour les barrés par exemple.
Est-il possible d'opérer un tel filtrage via un prédicat (qui testerait le spanner-id) ?

Bon ça dépasse un peu mes compétences
voici une astuce un peu lourde mais qui fonctionne

startStringNb =
#(define-event-function (string-number) (number?)
   #{
     \tweak spanner-id "string-nb"
     \tweak bound-details.left.text \markup { \circle \number #(number->string string-number) \hspace{0.5} }
     \tweak font-size -5
     \tweak font-shape #'upright
     \tweak style #'dashed-line
     \tweak dash-fraction #0.5
     \tweak dash-period #1.5
     %etc.
     \startTextSpan
   #})

music = \relative {
  \clef "G_8"
  %Stencil TextSpan effacé
  \override TabStaff.TextSpanner.stencil= ##f
  c4-\startStringNb #1 d e f\stopTextSpan
  %annuler l'effacement de TextSpan
  \revert TabStaff.TextSpanner.stencil
  \override TextSpanner.bound-details.left.text = "CIII"
  c\startTextSpan  f d' g \stopTextSpan
}

\score   {
  <<
    \new Staff {   \music  }
    \new TabStaff{
      \tabFullNotation
      \music
    }
  >>
}

Bonjour,

Merci @MartialR pour cette alternative. Avec l'aide de l'IA, ci-dessous le code qui permet le filtrage (sur version 2.26 de Lilypond). La fonction TextSpanner.after-line-breaking permet le filtrage recherché.

guitarTab =
#(define-music-function (music) (ly:music?)
#{
     \new Score {
       \new TabStaff \with {
         \override TextSpanner.after-line-breaking =  #(lambda (grob)
            (if (equal? (ly:grob-property grob 'spanner-id) "string-nb")
                (ly:grob-set-property! grob 'stencil empty-stencil)))
       } {
         \tabFullNotation
         $music
       }
     }
   #})

Bonjour,

superbe , mais dans la fonction j'enlève le \new Score

\version "2.26.0"

startStringNb =
#(define-event-function (string-number) (number?)
   #{
     \tweak spanner-id "string-nb"
     \tweak bound-details.left.text \markup { \circle \number #(number->string string-number) \hspace{0.5} }
     \tweak font-size -5
     \tweak font-shape #'upright
     \tweak style #'dashed-line
     \tweak dash-fraction #0.5
     \tweak dash-period #1.5
     %etc.
     \startTextSpan
   #})


musiq = \relative  c' { \clef"G_8"
  f4-\startStringNb #1 fis e f\stopTextSpan
   \override TextSpanner.bound-details.left.text = "CIII"
  c,\startTextSpan  f d' g \stopTextSpan
}

%fonction pour effacer que les StringNumber dans les TabStaff  
guitarTab =
#(define-music-function (music) (ly:music?)
   #{
  \new TabStaff \with {
         \override TextSpanner.after-line-breaking =  #(lambda (grob)
          (if (equal? (ly:grob-property grob 'spanner-id) "string-nb")
          (ly:grob-set-property! grob 'stencil empty-stencil)))
       } {
         \tabFullNotation
         $music
       }
   #})

<<
 \new Staff {   \musiq  }
  \guitarTab  \musiq 
>>
1 « J'aime »