Autor Thema: Staff-Beschreibung positionieren  (Gelesen 2797 mal)

TipTap

  • Member
Staff-Beschreibung positionieren
« am: Freitag, 12. Februar 2010, 02:31 »
Hallo,

bei folgendem Code wüsste ich gerne, wie ich die Beschriftung des
"TabStaff" veredeln kann: Ich möchte, dass die Saitenbeschriftung,
also die kleinen Kästchen mit den Buchstaben, dichter an dem TAB
sind. Außerdem sollen die Buchstaben in ihren Kästchen zentriert
sein. Dass sie nicht zentriert sind, sieht man leichter, wenn man die
"pad-to-box" Werte von "0 . 1" auf z.B. "0 . 4" erhöht.

\version "2.12.2"

% Koyabu left hand tuning: C G d a e h
#(define-public koyabuLH  '(35 28 21 14 7 0))

global= { \time 4/4 }

myNotes = { g16 e' c' b c e, c' e, g, e' c' b c e, c' e, }

<<

  \new TabStaff \with {
    instrumentName = \markup \magnify #0.6 \override #'(baseline-skip . 1) \column {
      \box \pad-to-box #'(0 . 1) #'(0 . 1) C
      \box \pad-to-box #'(0 . 1) #'(0 . 1) G
      \box \pad-to-box #'(0 . 1) #'(0 . 1) d
      \box \pad-to-box #'(0 . 1) #'(0 . 1) a
      \box \pad-to-box #'(0 . 1) #'(0 . 1) e
      \box \pad-to-box #'(0 . 1) #'(0 . 1) h
    }
  } {
    % koyabu left hand
    \global
    \set TabStaff.stringOneTopmost = ##f
    \set TabStaff.stringTunings =  #koyabuLH
    \set TabStaff.minimumFret = #5
    \stemUp
    \relative c''' { \myNotes}
  }
  \new Staff {
    % cello
    \global
    \clef bass
    \key g \major
    \relative c { \myNotes }
  }

>>

Danke für jede Unterstützung!

TipTap

RobUr

  • Member
Re:Staff-Beschreibung positionieren
« Antwort #1 am: Freitag, 12. Februar 2010, 04:13 »
Hallo TipTap,

das ist doch schon eine prima Annäherung an dein Saitenbeschriftungsproblem – sehr löblich! Wenn es gerade nicht eleganter gehen kann, weil man es dringend benötigt, muss auch ich hin und wieder solch radikale Markupmaßnahmen ergreifen. Quick-’n’-dirty, aber gedruckt zumindest das, was man haben möchte.

Wenn dir Boxen um die Saitenangaben vorerst genügen sollten, schau dir in der NR einmal den \pad-to-box unmittelbar vorangehenden Befehl \pad-markup an; er erzeugt gleichmäßiges Padding an allen Seiten eines Objekts (was einer Zentrierung entspricht), das mit \box umrandet werden kann. Es gibt statt \box auch \circle, um einen Kreis um ein Objekt zu zeichnen. In beiden Fällen steckt der Teufel aber im Detail: jeder Buchstabe, jede Ziffer, jedes beliebige Zeichen hat unterschiedliche Abmessungen, wonach sich die skalierbaren Umrandungsfunktionen richten. Ein kleines „a“ hat eine wesentlich geringere Ausdehnung als ein großes „M“. Eine einheitlich große Umrandung verschiedener Symbole ist mit diesen Mitteln also nicht möglich.

Deswegen habe ich dein Beispiel einmal dahingehend verändert, einheitlich große Kreise per \draw-circle zu zeichnen und die Buchstaben halbwegs mittig hinein zu platzieren.
\version "2.12.2"

% Koyabu left hand tuning: C G d a e h
#(define-public koyabuLH  '(35 28 21 14 7 0))

global= { \time 4/4 }

myNotes = { g16 e' c' b c e, c' e, g, e' c' b c e, c' e, }

<<
\new TabStaff \with {
instrumentName = \markup \magnify #0.45 \override #'(baseline-skip . 1.45) \center-column {
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.35 . -0.35) C
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.4 . -0.35) G
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.3 . -0.3) d
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.275 . -0.225) a
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.25 . -0.25) e
\combine \draw-circle #0.6 #0.1 ##f \translate #'(-0.275 . -0.325) h
}
} {
% koyabu left hand
\global
\set TabStaff.stringOneTopmost = ##f
\set TabStaff.stringTunings =  #koyabuLH
\set TabStaff.minimumFret = #5
\stemUp
\relative c''' { \myNotes }
}
\new Staff {
% cello
\global
\clef bass
\key g \major
\relative c { \myNotes }
}
>>

Vielleicht gefällt es dir mit den Kreisen auch gut.

Prosit [lat. es möge nützen],
Robert

trulli

  • Member
Re:Staff-Beschreibung positionieren
« Antwort #2 am: Freitag, 12. Februar 2010, 15:10 »
Hallo Jungs 8)

ich würde keines der beiden Beispiele nehmen. Kästen um Zahlen kommen oft bei Taktzahlen vor, Kreise um Zahlen bezeichnen bei Saiteninstrumenten die Saitennummer.

Warum denn nicht ganz konventionell, so wie es in 90% der Tabs vorkommt? So in 10% der Fälle habe ich auch schon mal eckige Klammern um die Tonangabe gesehen.

% Koyabu left hand tuning: C G d a e h
#(define-public koyabuLH  '(35 28 21 14 7 0))

global= { \time 4/4 }

myNotes = { g16 e' c' b c e, c' e, g, e' c' b c e, c' e, }

<<

  \new TabStaff \with {
    instrumentName = \markup
    %\magnify #0.5
    \override #'(baseline-skip . 1)
    \abs-fontsize #5.8
    {
    \null \hspace #8 {
    \column { C G d a e' h'
            }
      }
   
    }
      }
 
  {
    % koyabu left hand
    \global
    \set TabStaff.stringOneTopmost = ##f
    \set TabStaff.stringTunings =  #koyabuLH
    \set TabStaff.minimumFret = #5
    \stemUp
    \relative c''' { \myNotes}
  }
  \new Staff {
    % cello
    \global
    \clef bass
    \key g \major
    \relative c { \myNotes }
  }

>>

Grüße von Mat

@Rob: Feintuning natürlich wie immer möglich ;)
« Letzte Änderung: Freitag, 12. Februar 2010, 15:12 von trulli »

trulli

  • Member
Re:Staff-Beschreibung positionieren
« Antwort #3 am: Freitag, 12. Februar 2010, 17:54 »
Kleiner Nachtrag.

Ich habe mal die Schriftart(en) angeglichen.

Ich würde es so machen wie in Version 1. Die anderen sind aber auch möglich... Geschmackssache.

Ist da was für dich dabei?

Grüße

\new TabStaff
 \with {
    instrumentName = \markup
    %\magnify #0.5
    \override #'(baseline-skip . 1)
    \override #'(font-name . "FreeSans")
    \abs-fontsize #6
    {
    \null \hspace #8 {
    \column { C G d a e' h'
            }
      }
   
    }
      }
{
  \override Staff.Clef #'stencil = #(lambda (grob)
    (grob-interpret-markup grob TAB))
  a
}