Autor Thema: andere Zeichen für BarNumber  (Gelesen 2919 mal)

LaLuneNoir

  • Member
andere Zeichen für BarNumber
« am: Montag, 12. Juli 2010, 15:58 »
Hallo zusammen!

Ich habe folgendes Problem: Ich setze gerade Noten, die vom Komponisten gestrichen wurden, für einen musikwissenschaftlichen Aufsatz. Der Auto möchte gerne, dass die Taktnummerierung nach folgendem Muster erfolgt:

<Taktnummer des erste gestrichenen Taktes><Buchstaben für die einzelnen Takte einer Streichung>

Also z.B. für die erste Streichung 15a, 15b, 15c, 15d usw. Ich glaube kaum, dass ich Lilypond dazu bekomme, automatisch Buchstaben zu zählen. Es würde mir aber sehr helfen, wenn jemand von euch weiß, wie man BarNumber durch ein beliebiges Zeichen ersetzen kann.

Vielen Dank und viele Grüße

RobUr

  • Member
Re:andere Zeichen für BarNumber
« Antwort #1 am: Montag, 12. Juli 2010, 18:56 »
Ich hatte mal einen Ansatz gefunden, die Taktzahlen zu erweitern: Changing the bar-number string.

Die Hauptprobleme sind (a) dass Lily den Wert der Taktnummer dynamisch bestimmt, weswegen (b) dieser Wert vor dem Aufruf ermittelt, dann geändert und anschließend zurückgespeichert werden muss, und (c) barNumber vom Typ integer (Ganzzahl) ist (wodurch \set Score.currentBarNumber = #15a eben nicht funktioniert).

Das Beispiel aus der englischen Liste klappt also ganz gut, um Taktzahlen bspw. einzuklammern, indem der BarNumber-stencil überschrieben wird.

Zunächst wird der neue stencil definiert:
#(define (bis-bar-number BarNumber)
  "Append bis to the bar number."
  (let* (
        ; Set barNumber to the current value
      (barNumber (ly:grob-property BarNumber 'text))
      ; Append " bis" to it
      (bisBarNumber (string-append barNumber " bis")))
    ; Store the new value back
    (ly:grob-set-property! BarNumber 'text bisBarNumber))
  ; and print it
  (ly:text-interface::print BarNumber))

Die entscheidende Zeile ist Zeile 7, in der man die anzufügenden Zeichen (per string-append) definieren kann. Um Taktzahlen z.B. einzuklammern, ändert man die Zeile in
(bisBarNumber (string-append "(" barNumber ")")))
Anschließend wird der stencil ab der gewünschten Stelle ersetzt:
\override Score.BarNumber #'stencil = #bis-bar-number
Es wäre jetzt aber all zu mühselig, für jede einzelne Taktzahl einen eigenen Stencil zu schreiben. Vielleicht findet sich jemand, der mit dieser Scheme-Vorlage mehr als ich etwas anfangen und anpassen kann?

Viele Grüße, Robert

LaLuneNoir

  • Member
Re:andere Zeichen für BarNumber
« Antwort #2 am: Montag, 12. Juli 2010, 22:21 »
Hallo Robert,

vielen Dank schon Mal. Ist zwar etwas aufwändig, aber so viele Seiten sind es nicht. Wenn du mir jetzt noch helfen kannst, die BarNumber kursiv zu setzen, wäre ich überglücklich. Diese Scheme-Geschichten sind mir irgendwo etwas zu hoch.

Viele Grüße und Dank

RobUr

  • Member
Re:andere Zeichen für BarNumber
« Antwort #3 am: Dienstag, 13. Juli 2010, 01:19 »
\override Score.BarNumber #'font-shape = #'italic

RobUr

  • Member
Re:andere Zeichen für BarNumber
« Antwort #4 am: Dienstag, 13. Juli 2010, 01:35 »
Noch ein kurzer Nachtgedanke: Es ist weitaus einfacher, exotische Taktzahlen per \markup unterzubringen. Das wäre zwar nicht automatisiert, aber BarNumbers sind wesentlich leichter zu unterdrücken als zu ändern.

gbehrendt

  • Member
Re: andere Zeichen für BarNumber
« Antwort #5 am: Mittwoch, 23. September 2015, 22:26 »
Hej.
Ich mache das hier noch einmal auf: Ich möchte nach einem Zeilenumbruch innerhalb des Taktes die Takzahl am Beginn der Zeile in Klammern setzen. Die Klammern bekomme ich dank Roberts Hinweisen hin, aber an der Stelle „mitten im Takt“ kriege ich keine Taktzahl angezeigt. Mit der Lösung aus Issue 460 komme ich leider auch nicht zurecht.

Vielen Dank für eure Hilfe
– Gereon

\version "2.18.2"

\relative c'' { a4 g g a | \break
\once \set Score.barNumberFormatter =
        #(lambda (bar-number measure-position alternative-number extra)
        (markup (string-append
            "("
            (number->string bar-number)
            ")"
        )))
b g d f | d f \bar ""\break \once \override Score.BarNumber.break-visibility = #'#(#t #t #t)
f d | e g a b \break a a a a }

harm6

  • Member
Re: andere Zeichen für BarNumber
« Antwort #6 am: Mittwoch, 23. September 2015, 23:08 »
\version "2.18.2"

#(define simple-par-bar-nr
  (lambda (bar-number measure-position alternative-number context)
    (format #f "(~a)" (number->string bar-number))))
   
par-bar-nr = \once \set Score.barNumberFormatter = #simple-par-bar-nr

\layout {
  \context {
    \Score
    barNumberVisibility = #first-bar-number-invisible-save-broken-bars
  }
}

\relative c'' {
a4 g g a |
\break
\par-bar-nr
b g d f |
d f
\bar ""
\break
f d |
e g a b
\break
a a a a
}

HTH,
  Harm

gbehrendt

  • Member
Re: andere Zeichen für BarNumber
« Antwort #7 am: Mittwoch, 23. September 2015, 23:25 »
Danke!