Akkordfunktionen in MuseScore und LiliyPond

  • Ersteller Quentin Zirkel
  • Erstellt am
Quentin Zirkel
Quentin Zirkel
Registrierter Benutzer
Zuletzt hier
21.09.23
Registriert
10.10.14
Beiträge
153
Kekse
760
Ich beschäftige mich gerade mit Harmonielehre, und das in klassisch deutscher Notation. Ich würde gerne wissen ob, und wenn ja wie, man in MuseScore Ergebnisse wie in der Beispieldatei bekommen kann. Weiß da vielleicht jemand weiter?

Die Funktion "Einfügen/Text/Akkordbezeichnung" habe ich schon gefunden, aber da kann man scheinbar nur einfachen Text eingeben. So etwas wie "T über 3", das Doppel-D, oder gar die längeren Striche, auf denen denn auch noch was steht, finde ich zumindest nicht. Außerdem sind diese Bezeichnungen an Noten gebunden während ich eher eine Bindung an Taktzeiten bräuchte.

Ansonsten würde mich aber auch interessieren, ob andere Programme die Aufgabe ggf. besser lösen können.
 
Eigenschaft
 

Anhänge

  • Akkordfunktionen.JPG
    Akkordfunktionen.JPG
    113,3 KB · Aufrufe: 1.414
... das Doppel-D ...

Hallo Quentin Zirkel,

MuseScore dürfte das nicht können und selbst in Lilypond ist das im Moment wohl noch nicht möglich.

Für die o.g. Aufgaben wäre wahrscheinlich LaTeX geeignet, aber nur, wenn das Paket musiXTeX installiert ist. Das sind Public-Domain-Programme, die ich kürzlich installiert, jedoch noch nicht ausprobiert habe. (Texte mit LaTeX habe ich jedoch schon geschrieben.)

In "harmony" sind Funktionssymbole enthalten, die man mit der ansonsten anspruchsvollen LaTeX-Textverarbeitung wohl nicht hinbekommen würde:

musixtex.png

Quelle: www.tex.ac.uk/ctan/info/symbols/comprehensive/symbols-a4.pdf

Viele Grüße
Klaus
 
Hallo Klaus. Vielen Dank für deine Antwort.
MuseScore dürfte das nicht können und selbst in Lilypond ist das im Moment wohl noch nicht möglich.
Schade, aber irgendwie auch nicht überraschend. Diese ganze hoch- und tiefstellerei allein ist ja schon eine nicht ganz einfache Textsatzaufgabe.
Für die o.g. Aufgaben wäre wahrscheinlich LATEX geeignet, [...]
Von LaTeX kann ich ein Lied singen. Als Mathematiker verdiene ich damit quasi mein täglich Brot. ;) Musik setzen habe ich allerdings noch nicht versucht. Für das Tüfteln an vierstimmigen Satzaufgaben macht das ganze aber wohl auch kaum Sinn. Da ist ein WYSIWYG Interface mit Anhörmöglichkeit doch deutlich praktischer, auch wenn das Endergebnis mit LaTeX wahrscheinlich besser aussehen würde.

Gruß, QZ
 
MuseScore dürfte das nicht können und selbst in Lilypond ist das im Moment wohl noch nicht möglich.
Im Grunde geht es ja "nur" um Text-Markup (in LilyPond ist es ja ähnlich wie in TeX möglich, Zeichen beliebig zu skalieren und zu positionieren. Bequemerweise wird man sich Makros für Zeichen wie das "durchgestrichene D" oder "überlagerte D" definieren, die man bei Bedarf einfach aufrufen kann.
Spannend im wahrsten Sinne des Wortes wird es dann bei Linien, die über "Text Spanner" realisiert werden können.

Ein einfaches Beispiel aus der LilyPond-Dokumentation:
lily-0f1252dd.png

Hier wurde ein Makro \diagonal-stroke definiert, mit dem man einen diagonal durchgestrichenen Buchstaben erzeugen kann. So geht's im Prinzip auch mit anderen speziellen Symbolen.

In MuseScore kann man immerhin bei solchen Texten die Schriftart wechseln und hoch- und tiefstellen, vielleicht kommt man damit zurande.

Ansonsten gibt es auch Fonts, die die benötigten Sonderzeichen schon fertig enthalten - die lassen sich natürlich in (fast) jedem Notensatzprogramm einsetzen.


Von LaTeX kann ich ein Lied singen.
Na prima! :great:
Dann ist Dir textbasierte Eingabe, die auf viele so abschreckend wirkt, ja vertraut und Du könntest auch mal einen Blick auf LilyPond riskieren.
Ich habe vor langer Zeit trotz exzessiver TeX-Kenntnisse für Notensatz auf LilyPond umgesattelt, weil LilyPond eben auf Notensatz spezialisiert ist.

Viele Grüße
Torsten
 
  • Gefällt mir
Reaktionen: 2 Benutzer
Leider haben wir immer noch kein
DD.png
, auf das ich mich bezog, doch Du hast u.a. mit dem Link einen Weg aufgezeigt, wie es in LilyPond funktionieren könnte.
Danke dafür!

Im Grunde geht es ja "nur" um Text-Markup ...

Das "nur" hat es in sich, zumindest für mich. Sind Dir Beispiele bekannt, welche die Vorgehensweise genauer erläutern? Also, wie kann ich z.B. ein zweites D so verschieben, daß es in gewünschter Weise überlappt und wie lässt sich der Vorgang in einem Makro abspeichern?

In der Funktionsanalyse werden ja eigentlich nicht so viele Symbole verwendet und es wäre prima, wenn sie für Liiypond zur Verfügung stünden.

Ansonsten gibt es auch Fonts, die die benötigten Sonderzeichen schon fertig enthalten
HaraldS hatte eine Quelle angegeben. Doch ob sie noch ergiebig ist?
https://www.musiker-board.de/threads/symbol-für-doppeldominant-in-text-einfügen.411501/#post-5003372

Viele Grüße
Klaus

P.S.: Nützliche Hinweise zur Positionierung/Textformatierung von Zeichen finden sich hier:
http://www.lilypond.org/doc/v2.19/Documentation/notation/formatting-text

Ob damit auch das Doppel-D realisiert werden kann?
 
Zuletzt bearbeitet:
Dann ist Dir textbasierte Eingabe, die auf viele so abschreckend wirkt, ja vertraut und Du könntest auch mal einen Blick auf LilyPond riskieren.
Ich habe vor langer Zeit trotz exzessiver TeX-Kenntnisse für Notensatz auf LilyPond umgesattelt, weil LilyPond eben auf Notensatz spezialisiert ist.
Joa, allgemein hab ich keine Aversionen gegen Text-Markup. Wenn ich denn tatsächlich mal irgendwann etwas fabrizieren sollte, was dafür gedacht ist, von anderen gelesen zu werden, werde ich auch mal einen Blick auf musictex oder LiliPond werfen. Aber aktuell ist alles, was ich mache, nach vorgegebenen Funktionsbezeichnungen vierstimmige Sätze zu erstellen. Dabei wäre es halt hilfreich, wenn ich die Funktionsbezeichnungen direkt auf dem Bildschirm hätte.

Ich hatte auch mal mit Denemo rumgespielt, was soweit ich weiß ein Frontend für LiliPond ist. Die Akkordbezeichnungen waren da allgemein besser gelöst, aber das Programm lief dermaßen instabil, dass ich dann doch zu MuseScore gewechselt bin.

Das sieht zwar brauchbar aus, aber mal ehrlich, 40€ für eine Schriftart?! :eek: Das finde ich schon ziemlich überzogen.

Hier noch mal ein aktuellerer Link: FinalAnalyse (von Ansgar Krause)
 
Leider haben wir immer noch kein
dd-png.392449
, auf das ich mich bezog,[...]

Hallo Klaus,

solange sich die geforderten Zeichen aus bereits vorhandenen "zusammensetzen" lassen, geht das beispielsweise ohne große Scheme-Programmiererei mit \markup-Befehlen.
Zwei Zeichen überlagern (mit gleichem Bezugspunkt Grundlinie/Links) geht sehr schön mit \combine, Verschieben eines Zeichens dann mit \translate:

Code:
\markup \combine "D" \translate #'(0.6 . -0.7) "D"

ergibt dann
lily-dd.png
. Die Grundlinie stimmt dann mit der des oberen linken D überein (das sieht man jetzt nicht, weil es als Grafik eingefügt wurde).

Der Vorteil einer aufwendigeren eigenen Makro-Funktion mit #(define-makro-command ... ist vor allem, daß man gezielt aktuelle Fonthöhe, Linienstärke usw. abfragen kann und somit bei geändterter Skalierung/font-size die Proportionen/Verschiebungen immer noch stimmen.
Wenn man das mit dem Ziel eines möglichst allgemein funktionierenden Makro-Pakets realisieren wollte, wäre das also die Möglichkeit der Wahl. Dann könnte man z. B. auch die kleinere Ziffer unter einem Symbol (Umkehrungen...) und Ähnliches bequem als Paramter übergeben.

Viele Grüße
Torsten[/ATTACH]
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo zusammen,

LilyPond-Makros, erster Schritt


@klaus111: Mit den LilyPond-Markup-Befehlen (Du hast ja schon darauf hingewiesen) lassen sich alle verfügbaren Zeichen beliebig skalieren und positionieren.
Allerdings ist das natürlich im Einzelfall ziemlich umständlich und aufwendig...

Solche Probleme reizen mich, auszuprobieren, was mit LilyPond so alles möglich ist und ich habe mir ein Markup-Kommando \fh (wie "functional harmony") gebaut, das einen als Argument übergebenen String in seine Bestandteile zerlegt und diese Bestandteile so anordnet, wie man es erwartet. :)

Das Eingabe-Prinzip ist ganz einfach:
  • Eingabe "verschränkter" Zeichen als DD, DDD, SS, ss
  • Durchgestrichenes Zeichen (ohne Grundton) als D/ oder DD/ usw.
  • Hochstellen mit ^
  • mehrere hochgestellte Zeichen mit / separieren
  • Zeichen unter dem Hauptsymbol mit _
Das Markup-Makro \fh (wie "functional harmony") teilt also das übergebene Coding in Hauptsymbol, "Unterteil" und Hochgestellte Zeichen (bei Bedarf beliebig viele, durch / getrennt ;)) auf und formatiert daraus das Endergebnis.

Es wird darauf geachtet, daß die Ziffer unter dem Hauptsymbol möglichst zentriert ist, evenutelle Prä- oder Suffixe (wie > u. ä.) stehen links oder rechts davon, ohne die zentrierte Position der Ziffer zu beeinflussen.
Ebenso sind mehrere Ziffern/Funktionsbuchstaben bei Hochstellung untereinander angeordnet, während evenutelle Prä- oder Suffixe (wie +) rechts oder links aus der Kolonne herausstehen.

Da alle benötigen Zeichen (außer dem Querstrich, aber das ist nur ein Strich) vorhanden sind oder aus vorhandenen Zeichen konstruiert werden können (die "verschränkten" Buchstaben), habe ich mich dazu entschlossen, keinen speziellen Schriftschnitt wie den von Sibelius oder Krause zu erstellen, sondern alles per Markup-Befehle zu regeln.
Das hat den Vorteil, daß man im Prinzip beliebige Fonts verwenden kann (mit evtl. kleinen Abstrichen in der Positionierung). Deshalb auch das Beispiel mit der LilyPond-Antiqua Century Schoolbook L Italic und der serifenlosen DejaVu Sans Oblique.

Beispiele für Eingaben

(oben: eingegebener Code, darunter: Ergebnis in kursiver Antiqua und schräger serifenloser Schrift)
lily-fh-test1.png


Zum direkten Vergleich mit Krauses Font (oberer Teil der Grafik aus seinem Demo-Video) und die LilyPond-Entsprechung mit dem experimentellen Makro \fh

lily-fh-test2.png

[Edit: Mist, Tippfehler bei den Noten, aber - egal - es geht ja um die Funktions-Symbole darunter...]

Was meint Ihr dazu? Ist so etwas brauchbar?
Das Coding sieht noch aus wie auf der Baustelle und es fehlt eine gescheite Möglichkeit zum Linien-Handling und Klammersetzung.
Leider habe ich ziemlich wenig Ahnung von dieser Art der Funktionstheorie und weiß nicht, was noch fehlen könnte.

Immerhin ein Anfang! :)

Viele Grüße
Torsten
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 2 Benutzer
Hey Torsten,

das sieht doch schon mal super aus! :) Ich bin sehr zuversichtlich, dass der ein oder andere Musikstudent damit etwas anfangen könnte. Außerdem gibt es mir Motivation, mich bei Gelegenheit mal etwas mit Lilypond zu beschäftigen. Ich könnte das mit meinem Vorhaben kombinieren, einige Songs, die ich interessant finde, zu transkribieren und mich an einer harmonischen Analyse zu versuchen. Mal sehen, ob ich das hinkriege.

Zu der Frage, was es in der Funktionstheorie noch so alles an Notation gibt, wäre ein Blick in das Buch "Modulationslehre" von Heinz Acker hilfreich. Da wird in einem der ersten Kapitel recht konzentriert so ziemlich alles runtergerattert, was ich je gesehen habe. Vielleicht läuft dir das Buch ja mal über den Weg.

Gruß,
QZ
 
Hallo Torsten,

prima, daß Du an dem Thema weitergearbeitet hast - mit einem tollen Zwischenergebnis!

Ich habe mich inzwischen nur etwas mit markup-Befehlen befasst.

Übungshalber habe ich Zeichen wie die o.g. dann mit diesen Befehlen realisiert. Das ist jedoch nur für Kleinigkeiten geeignet, wie Du schon sagtest.
Ein allgemein funktionierendes Makro-Paket, wie Du es momentan erstellst,wäre natürlich ideal!
Habe auch die umfangreiche Bibliothek durchgesehen, die auch viele Makros enthält dabei allerlei Interessantes gefunden, aber nichts, was die Funktionstheorie anbelangt.



Ja, die Modulationslehre von Acker finde ich ein gutes Beispiel. Z.B. auf S. 296 der Leseprobe sieht man einen sinnvollen Einsatz von Normalschrift (für die Funktionssymbole) und für kursiv (für Akkorde). An dem Beispiel wird auch deutlich, daß man waagerechte Linien beliebiger Länge benötigt. Etwas über diesen Linien sollten dann Buchstaben und Zahlen geschrieben werden können.
Acker schreibt sie meist in Normalgröße, wahlweise sollten die Zahlen und Buchstaben aber auch kleiner sein. Damit würde man auch das Beispiel ganz unten abdecken, das von einem anderen Setzer stammt. Auch wäre es gut, wenn die Größe der Klammern veränderbar wäre - zur Verdeutlichung der sog. Klammerdominanten.
Acker streicht die verkürzten Dominanten in einer anderen Richtung durch, insbes. vorteilhaft bei den entsprechenden Doppeldominanten. Dann würden noch die beiden verminderten Septakkorde (auch durchgestrichen) und die doppelte Mollsubdominante fehlen.
Das ganze dreizeilig unter den Noten, am besten mit variablen Zeilenabständen. (erste Zeile für Ausgangstonart, zweite für die Akkordbezeichnung, die dritte für die Zieltonart.)

Ich denke, das wäre dann alles, was gebraucht wird.

Beispiele.png


Die Tonarten (Buchstabe) in Modulationsbeispielen sind bei Acker zur Verdeutlichung mit einem Quadrat umgeben, was in Lilypond leicht zu realisieren ist.

Wäre Spitze, wenn Du so eine Makrobibliothek der Allgemeinheit zur Verfügung stellen würdest! :great:

Viele Grüße
Klaus

P.S.: Habe das Thema der neuen Situation angepasst, wenn es Dir recht ist, Quentin Zirkel. Es interessiert Dich ja auch, sonst hätte ich ein neues Thema eröffnet.
 
Zuletzt bearbeitet:
Vielen Dank für den Literaturhinweis!

Das Buch ist übrigens mit TeX gesetzt! :great:

Horizontale Grundlinien: der zweite Schritt


auf S. 296 der Leseprobe sieht man einen sinnvollen Einsatz von Normalschrift (für die Funktionssymbole) und für kursiv (für Akkorde). An dem Beispiel wird auch deutlich, daß man waagerechte Linien beliebiger Länge benötigt.
Super, die Leseprobe hilft schon viel.
Und man sieht mal wieder, daß es keine allein seligmachende Wahrheit gibt.
Die Entscheidung, ausgerechnet Akkord-Buchstaben kursiv zu drucken (obwohl sie üblicherweise in der "normalen" Welt nicht kursiv gesetzt werden) und Funktionssymbole nicht, halte ich für etwas unglücklich, ich hätte es umgekehrt gemacht...
Leider gibt es in LilyPond (ist ja ein Noten-, kein Schriftsatzsystem) keine Information über die Neigung einer Kursivschrift, so daß es einigermaßen in Gebastel ausartet, einen angemessenen Neigungswinkel für die Anordnung der hoch- und tiefgestellten Zeilen zu finden. Wenn die Makros auch mit aufrechten Schriften klarkommen sollen, muß ich mir noch was einfallen lassen.

Die Boxen sind mit LilyPond tatsächlich kein Problem, und wenn man die Funktionssymbole als "Lyrics" eingibt, kann man die Strophennummern-Funtkion perfekt dafür mißbrauchen, die eingekästelten Tonarten zu setzen.

Für die horizontalen Linien bin ich momentan bei einem angepaßten "TextSpanner" gelandet, dann paßt sich dessen Länge auch immer automatisch an die Noten an.

Beispiel für horizontale Grundlinie


Aus Klausens Leseprobe habe ich die ersten beiden Zeilen von Beethovens Sonate C-Dur als Vorlage genommen, um das Thema "horizontale Grundlinie" und "Tonart-Kästchen" zu testen.
Der Vorteil reiner Markup-Befehle ohne besonderen Spezial-Font liegt wie gesagt darin, daß man praktisch eine beliebige Schriftart verwenden kann. Um an das Bärenreiter-Beispiel heranzukommen, habe ich z. B. die Linotype Palatino gewählt, weil sie der im Buch benutzen URW Palladio sehr ähnlich ist (oder eher umgekehrt ;)):
lily-fh-test3.png


In diesm Beispiel sehe ich, daß ich meine hoch- und tiefgestellten Zeichen zu klein geraten sind und ich sie einweing größer machen sollte - aber keinesfalls so groß wie bei Bärenreiter, das finde ich nicht sehr ausgewogen.


Wäre Spitze, wenn Du so eine Makrobibliothek der Allgemeinheit zur Verfügung stellen würdest! :great:

Klar, wenn sie denn mal halbwegs ausgegoren und vollständig ist!

Viele Grüße
Torsten
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 2 Benutzer
Und man sieht mal wieder, daß es keine allein seligmachende Wahrheit gibt.
Das kann man auf diesem Gebiet wohl sagen. Ammon nimmt z.B. in seiner Harmonielehre teilweise sehr individuelle Zeichen, aber dennoch gut lesbar:
DD.png
(verkürzte Dominante: Unicode Hexadecimal: 0x0110 , Doppeldominante)

Ich würde mich in einer Standardeinstellung jedoch an die gebräuchlichsten Schreibweisen halten, z.B.:

Ziffern kleiner als Buchstaben, aber immer noch so groß, daß sie sehr gut leserlich ist. Etwas kleiner als Acker fände ich gut.

Kursiv würde ich eher als Hervorhebung für etwas Besonderes sehen. In Büchern zur Funktionsanalyse sind die Funktionssymbole i.d.R. das Normale und die Akkorde das Besondere.
In Takt vier rührt die ungleiche Höhe der beiden Ziffern sicherlich momentan daher, daß die 7 als unterste Zahl normalerweise weiter links steht als die höherstehenden Ziffern.
Wenn die Makros auch mit aufrechten Schriften klarkommen sollen, muß ich mir noch was einfallen lassen.
Ich hätte jetzt gedacht, daß die aufrechte Schrift die einfachere ist... bzw. wahrscheinlich ist es momentan nicht möglich, mit zwei Schriftarten zu arbeiten.

Viele Grüße
Klaus
 
Zuletzt bearbeitet:
Hallo,
ich habe mich an die Nachstellung des Beispiels "Teufelmühle" gemacht (S. 296 der erwähnten Leseprobe aus "Heinz Acker: Modulationslehre"), erst einmal ohne Makros und TextSpanner.

Im Rahmen der Recherchen stieß ich auf ein Template A.4.2 SATB-Partitur und automatischer Klavierauszug, was mir sehr nützlich erschien. Die Erwartungen wurden zwar nicht erfüllt, doch ich blieb erst einmal dabei, die Teufelsmühle mit vier Chorstimmen nachzustellen.
Zunächst verschob ich die Lyrics nach unten. Der Text sollten später umgewandelt der Funktionsanalyse dienen. Das klappte auch ganz gut, doch folgende Schwierigkeiten traten auf:

Zeile 32: Tilde als Bindebogen bleibt bei enharmonisch verwechselten Noten (Takt2 es-dis) wirkungslos und liefert eine Warnung. Ein entsprechender Legatobogen würde nach unten ausgerichtet.
Z.79: Um die Funktionssymbole horizontal zu verschieben fügte ich als Platzhalter "" ein. Alternativen?
Z.103 (Takt 5): Die Funktionssymbole werden normalerweise an den Noten zentriert ausgerichtet. Das kann bei zusammengesetzten Zeichen, wie D 8->7, unerwünscht sein.
In diesem Fall sollte das D weiter rechts, unter dem h (Viertel) stehen.
Z.128: Box B wurde als Notlösung hier (set stanza) eingerichtet, da im Lyricmode der Text mit der ersten Note beginnt. Pausen werden nicht berücksichtigt. Wie kann die Ausrichtung an der ersten Note ausgeschaltet werden?

Teufelsmühle6.png

(Bei dem Beispiel einer Teufelsmühle wird von keiner Werkeigenschaft im Sinne des Urheberrechts ausgegangen, sondern von einer handwerklichen Illustration.)

Code:
%% ursprünglich http://lsr.dsi.unimi.it/LSR/Item?id=178

\include "deutsch.ly"
\version "2.16.2"
\header {
    copyright =  \markup { "Copyright "\char ##x00A9" xxxx Die Inhaber des Copyright" }

    title = "Teufelsmühle"

}

#(set-global-staff-size 20)

upperOne =
\relative c' {
  \time 4/4
  \key b \major
  \voiceOne
  r4 b' c b
  a1
  a
  a2 gis
  fis fis
  e1\break
}


upperTwo =
\relative c' {
  \voiceTwo
  r4 f f f
  f4 es8~ dis e4 f
  %obiger Bindebogen "unbegrenzt", u.g. Legatobogen wird nach unten ausgerichtet
  % f4 es8( dis) e4 f

  fis1
  fis2 e
  e dis
  h1
}


lowerOne =
\relative c' {
  \time 4/4
  \key b \major
  \voiceOne
  r4 d es d
  c1
  c4 his cis d
  dis2 e
  cis h4 a
  gis1
}

lowerTwo =
\relative c {
  \voiceTwo
    r4 b' a b
    f2 e4 es
    d2 cis4 c
    h2 cis4 h
    a2 h e,1
}

firstverse = \lyricmode {
    T  
    \markup {
    D
     \small \smaller \translate #'(-0.5 . 1.9) \line {7}
     \small \smaller \translate #'(-3.5 . -1.5) \line {3}
  }
    T
    \markup { \concat {D \super "7" } }
               }

secondverse = \lyricmode {
    ""
    ""
    ""
    \markup { \italic { \concat { F \super "7" } }}
    \markup { \italic { \concat { D \super "7" } }}
    \markup { \italic { \concat { H \super "7" } }}
            }


thirdverse = \lyricmode {
    ""
    ""
    ""
    ""
    ""
    ""
    ""
    \markup \override #'(box-padding . 0.6) \box E:
    \markup { \concat { D \super "7" } }
    Tp
    \markup { S
     \small \smaller \translate #'(-0.2 . 1.9) \line {6}
     \small \smaller \translate #'(-1.7 . 0.4) \line {5}
            }
    \markup { D
     \small \smaller \translate #'(-0.8 . 1.9) \line {8 - 7}
            }
    ""
    T
            }

fourthverse = \lyricmode { }


\score {
  \context PianoStaff <<
    \context Staff = "upper" <<
      \clef treble
      \context Voice = "one" \upperOne
      \context Voice = "two" \upperTwo
    >>

    \context Staff = "lower" <<
      \clef bass
      \context Voice = "three" \lowerOne
      \context Voice = "four" \lowerTwo
    >>
% Ausrichtung der Noten an "one" bzw. "three"
    \lyricsto "one" \new Lyrics {
      \set stanza = \markup \override #'(box-padding . 1.0) \box B:
      \firstverse
    }
    \lyricsto "one" \new Lyrics {
      \set stanza = ""
      \secondverse
    }
    \lyricsto "three" \new Lyrics {
      \set stanza = ""
      \thirdverse
    }

  >>
  \layout {
    \context {
      \Lyrics
%     \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'((padding . 1.2))
    }
    \context {
      \PianoStaff
      \remove "Span_bar_engraver"
    }
    \context {
      \Staff
%     \override VerticalAxisGroup.staff-staff-spacing = #'((padding . 0))
      autoBeaming = ##t
      \unset melismaBusyProperties
    }
    \context {
      \Score
      \remove "Bar_number_engraver"
    }
  }
  \midi { }
}
\paper {
  line-width = 6\in
  indent = 0
}


Bin bei der Recherche auf keine Problemlösungen gekommen. Vielleicht hat jemand die ein oder andere Idee?

Viele Grüße
Klaus

P.S.: Die o.g. Zeilenbezifferung hat sich inzwischen etwas verändert. Be-3 nahm in der folgenden Antwort noch Bezug auf den älteren Code.
 
Zuletzt bearbeitet:
Hallo Klaus,

auf Dein vorletztes Posting werde ich in Kürze bezug nehmen, jetzt erst mal zur aktuellen "Teufelsmühle" ;)

Mein Ergebnis nach derzeitigem Stand sähe in etwa so aus (wie Du siehst, kann ich nun auch zwischen Kursiv und nicht Kursiv umschalten - aus weiterführenden Gründen halte ich aber hartnäckig an "Akkorde normal, Funktionssymbole kursiv" fest, das tut aber momentan nichts zur Sache) :)

lily-fh-test5.png


Zeile 32: Tilde als Bindebogen bleibt bei enharmonisch verwechselten Noten (Takt2 es-dis) wirkungslos und liefert eine Fehlermeldung. Ein entsprechender Legatobogen würde nach unten ausgerichtet.
Das ist allerdings ein hartnäckiges Problem - wenn die angebunden Noten nicht die gleiche Tonhöhe, den gleichen Namen und das gleiche Vorzeichen haben, lassen sie sich nicht mit ~ (Tie) aneinanderbinden.
Auf jeden Fall ein "Problem" (das wohl nur in didaktischer Literatur vorkommt?), das man sich näher anschauen sollte.

Für den Moment gibt es die oft praktizierte Lösung, eine unsichtbare Stimme zu benutzten. Ich habe trotzdem einen Bindebogen (Slur) statt des Haltebogens (Tie) benutzt, weil der Haltebogen zu kurz würde und das Kreuz vor dem dis doch ziemlich viel Platz braucht.
Ein kurzer paralleler Bereich. Damit die benachbarten Notenköpfe keine Verschiebungen auslösen, habe ich beide \voiceTwo zugeordnet, dann werden sie einfach übereinandergedruckt, ohne sich gegenseitig zu stören. Das Fehler-Gejammer habe ich deshalb kurz mit
\override Staff.NoteColumn.ignore-collision = ##t
ausgeschaltet.

Ein zweiter Ansatz im nächsten Takt ist, statt des Haltebogens ebenfalls einen Bindebogen zu verwenden und dessen vertikale Endpositionen "geradezurücken", so daß der Bogen keine Steigung hat.
Das gelingt aber aus verschiedenen Gründen nicht ganz, was aber außerhalb der Notenlinien kaum auffällt:

Code:
\version "2.18.2"

\relative c' {
  \voiceTwo

% Versteckte Noten und Slur
  \override Staff.NoteColumn.ignore-collision = ##t
  f4 << { \hideNotes \voiceTwo es8^( es) } \\ { \voiceTwo es8 dis } >>e4 f
  \revert Staff.NoteColumn.ignore-collision

% Vertikale Slur-Positionen ändern
  \override Slur.positions = #'(-5.0 . -4.9)
  c4( bis) cis d
}

lily-klaus111a-1.png



Z.82: Um die Funktionssymbole horizontal zu verschieben fügte ich als Platzhalter "" ein. Alternativen?

Wir benutzen ja beide den \lyricmode, und als Alternative zu "" gibt es auch _ (den einfachen Unterstrich) oder \skip.
Eine Abkürzung wie z. B. bei Ganztaktpausen R1*12 gibt es leider nicht, weil (zugegebenermaßen) Text in der Regel auch nicht sehr viele Noten überspringt.
Eine Möglichkeit ist aber, Wiederholungen zu verwenden:

\repeat unfold 12 { "" }



Z.132: Box B wurde als Notlösung hier eingerichtet, da im Lyricmode der Text mit der ersten Note beginnt. Pausen werden nicht berücksichtigt. Wie kann die Ausrichtung an der ersten Note ausgeschaltet werden?

Die Box mit \set stanza = [...] quasi als Strophennummer zu setzten, geht ja überall im Text und ist doch eine hervorragende Möglichkeit die "Tonart-Boxen" an die passende Stelle einzufügen. Das mache ich wie gesagt auch so.

Zum Thema "Ausrichtung an den Noten". Die ist nicht zwingend vorgegeben, im Gegenteil: die Abkürzung \addlyrics, die gezielte Ausrichtung an spezifizierbaren Voices mit \lyricsto... ist eigentlich nur ein Zusatzkomfort, wenn man schnell und unproblematisch Liedtext eingeben möchte.

In unserem Fall ist das ein wenig anders. Da sehe ich zwei Alternativen:
  • Ausrichtung an einer eigens und passend zu den Funktionssymbolen erfaßten Stimme (Voice), die nur der Ausrichtung dient. So arbeitet man wohl auch oft in Finale. Ab LilyPond 2.18 gibt es den neuen Kontext "NullVoice", mit dem sich eine unsichtbare Stimme zu Ausrichtungszwecken einfügen läßt
  • Man kann einen Text völlig losgelöst von Noten eingeben und (wie bei den Noten) die Länge der "Silben" mit den üblichen Zahlen angeben. Deshalb müssen Ziffern, die im Text vorkommen, auch in "" eingeschlossen sein.
Die Lösung mit völlig selbständigem Text sieht dann so aus:
Code:
<<
  \new Staff { \repeat unfold 24 { g'8 } }
  \new Lyrics \lyricmode {
    Das1 ist4 ein Text mit ei8 -- gen -- stän -- di16 -- gen Dau4. -- ern!8
  }
>>

Z.106: Die Funktionssymbole werden normalerweise an den Noten zentriert ausgerichtet. Das kann bei zusammengesetzten Zeichen, wie D 8->7, unerwünscht sein.
In diesem Fall sollte das D weiter rechts, unter dem h (Viertel) stehen.

Die Ausrichtung des Textes an den Noten ist noch von einigen Dingen abhängig (Meslismen...), aber in der Regel, wie Du schon schreibst, ist sie tatsächlich zentriert.
In unserem Fall eher unerwünscht.
Das Objekt für Liedtexte heißt LyricText und hat eine Eigenschaft self-alignment-X, mit der die Ausrichtung in bezug auf den Bezugspunkt (die Note) gewählt werden kann.
Neben Werten wie #LEFT (-1), #CENTER (0) und #RIGHT (1) können auch Zwischenwerte eingegeben werden, die eine "gewichtete" Ausrichtung ermöglichen:
Code:
<<
\version "2.18.2"

<<
  \relative c'' {
    g1 g g g
  }
  \addlyrics {
    Zen
    \override LyricText.self-alignment-X = #LEFT   % Entspricht -1
    Lin
    \override LyricText.self-alignment-X = #RIGHT   % Entspricht 1
    Reh
    \override LyricText.self-alignment-X = #-0.5
    Schief
  }
>>

lily-klaus111a-2.png


Wenn man möchte, daß der Text zwar streng linksbündig ausgerichtet ist, aber dennoch um einen festen (!) Wert nach links oder rechts verschoben ist, geht das über die Eigenschaft
\override LyricText.X-offset = #-0.5

Viele Grüße
Torsten
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo Torsten,

vielen Dank für Deine kenntnisreichen Kommentare :great: und z.B. den Tricks bezüglich des Problems mit den Halte-/Bindebögen!
Ich musste jedoch erst einmal die Version 2.18 installieren, denn die ist Voraussetzung für die meisten hier diskutierten Fälle.

Interessant auch die Alternativen für den Platzhalter "", auf den ich nur durch ausprobieren gekommen bin.
Ist ja prima, daß "\set stanza" an beliebiger Stelle im Text stehen kann. Ich frage mich nur, woher die kleinere fette Schrift kommt
bzw. wie man sie ändern kann.(Offenbar eine Standardeinstellung, siehe meine obige B:-Box.)
Das mit \override LyricText.X-offset = #-0.5 ist sehr nützlich und klappt hervorragend!

Eine Beobachtung habe ich leider machen müssen, die möglicherweise mit der Installation von 2.18 zusammenhängt:
Eine Linksverschiebung der hoch- oder tiefgestellten Ziffern (über negative Zahlen in translate) ist offenbar nicht mehr möglich (Code s.u.).

Viele Grüße
Klaus

Code:
%% ursprünglich http://lsr.dsi.unimi.it/LSR/Item?id=178

\include "deutsch.ly"
\version "2.18.2"
\header {
    copyright =  \markup { "Copyright "\char ##x00A9" xxxx Die Inhaber des Copyright" }

    title = "Teufelsmühle"

}

#(set-global-staff-size 20) 

upperOne =
\relative c' {
  \time 4/4
  \key b \major
  \voiceOne
  r4 b' c b
  a1
  a
  a2 gis
  fis fis
  e1\break
}


upperTwo =
\relative c' {
  \voiceTwo
  r4 f f f
  f4 << { \hideNotes \voiceTwo es8^( es) } \\ { \voiceTwo es8 dis } >>e4 f
  \revert Staff.NoteColumn.ignore-collision

  fis1
  fis2 e
  e dis
  h1
}


lowerOne =  
\relative c' {
  \time 4/4
  \key b \major
  \voiceOne
  r4 d es d
  c1
  %  \override Slur.positions = #'(-5.0 . -4.9)
  c4( his) cis d
  dis2 e
  cis h4 a
  gis1
}

lowerTwo =
\relative c {
  \voiceTwo
    r4 b' a b
    f2 e4 es
    d2 cis4 c
    h2 cis4 h
    a2 h e,1
}

firstverse = \lyricmode {
  \set stanza = \markup \override #'(box-padding . 1.0) \box B:
    T    
    \markup {
    D
     \small \smaller \translate #'(-0.5 . 1.9) \line {7}
     \small \smaller \translate #'(-3.5 . -1.5) \line {3}
  }
    T
    \markup { \concat {D \super "7" } }
               }

secondverse = \lyricmode {
    ""
    ""
    ""
    \markup { \italic { \concat { F \super "7" } }}
    \markup { \italic { \concat { D \super "7" } }}
    \markup { \italic { \concat { H \super "7" } }}
            }


thirdverse = \lyricmode {
    ""
    ""
    ""
    ""
    ""
    ""
    ""
    \override LyricText.X-offset = #-0.5
    \set stanza = \markup \override #'(box-padding . 1.0) \box E:
    %\markup \override #'(box-padding . 0.6) \box E:
    \markup { \concat { D \super "7" } }
    Tp
    \markup { S
     \small \smaller \translate #'(-0.2 . 1.9) \line {6}
     \small \smaller \translate #'(-1.7 . 0.4) \line {5}
            }
    \markup { D
     \small \smaller \translate #'(-0.8 . 1.9) \line {8 - 7}
            }
    ""
    T
            }

fourthverse = \lyricmode { }


\score {
  \context PianoStaff <<
    \context Staff = "upper" <<
      \clef treble
      \context Voice = "one" \upperOne
      \context Voice = "two" \upperTwo
    >>
 
    \context Staff = "lower" <<
      \clef bass
      \context Voice = "three" \lowerOne
      \context Voice = "four" \lowerTwo
    >> 
% Ausrichtung der Noten an "one" bzw. "three"
    \lyricsto "one" \new Lyrics {
      \set stanza = ""
      \firstverse
    }
    \lyricsto "one" \new Lyrics {
      \set stanza = ""
      \secondverse
    }
    \lyricsto "three" \new Lyrics {
      \set stanza = ""
      \thirdverse
    }

  >>
  \layout {
    \context {
      \Lyrics
%     \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'((padding . 1.2))
    }
    \context {
      \PianoStaff
      \remove "Span_bar_engraver"
    }
    \context {
      \Staff
%     \override VerticalAxisGroup.staff-staff-spacing = #'((padding . 0))
      autoBeaming = ##t
      \unset melismaBusyProperties
    }
    \context {
      \Score
      \remove "Bar_number_engraver"
    }
  }
  \midi { }
}
\paper {
  line-width = 6\in
  indent = 0
}
 
Ich musste jedoch erst einmal die Version 2.18 installieren, denn die ist Voraussetzung für die meisten hier diskutierten Fälle.
Der Haupt-Unterschied liegt in der neuerdings möglichen vereinfachten Schreibweise
\override Slur.color = [...] statt \override Slur #'color = [...]
Ich habe mir mittlerweile die neuere Schreibweise angewöhnt. Die alte funtkioniert aber trotzdem noch und manchmal bin ich auch nicht konsequent.

Ist ja prima, daß "\set stanza" an beliebiger Stelle im Text stehen kann. Ich frage mich nur, woher die kleinere fette Schrift kommt
bzw. wie man sie ändern kann.(Offenbar eine Standardeinstellung, siehe meine obige B:-Box.)
"Der Trick" bei LilyPond besteht in den meisten Fällen darin, die Namen (!) und Eigenschaften (Properties) der Objekte zu kennen und zu wissen, in welchem Context sie sich befinden.
Die Strophennummer heißt z. B. StanzaNumber und untertützt wie alle Objekte, die mit Text zu tun haben, auch das "font-interface": http://lilypond.org/doc/v2.18/Documentation/internals/font_002dinterface

Die fette Schrift kommt daher, weil die Voreinstellung für die Strophennummer font-series = #'bold ist. Das kann man aber auf "normal" ändern:
\override StanzaNumber.font-series = #'medium

Wiederum hat der Liedtext LyricText in der Voreinstellung eine um einen Schritt vergrößerte Schrift (LyricText.font-size = #1), weshalb er größer als die Strophennummer ist.
Das kann man ausgleichen, indem man die Schriftgröße der Strophennummer ebenfalls ändert:
\override StanzaNumber.font-size = #1

Beispiel: Ich würde all diese Sonder-Einstellungen außerhalb in einen \layout-Block stecken, das kann man dann nämlich später immer mit \include einbinden und hat den ganzen Kleinram vom Hals (wäre dann also ein Teil des "Makro-Pakets").

Ich habe in diesem Beispiel nicht nur Schriftschnitt und Schriftgröße der "Strophennummer" angepaßt, sondern gleich noch tiefer in die Trickkiste gegriffen und auch noch eine Box herum gezeichnet. Damit wird die Benutzung doch um einiges komfortabler ;)

Code:
\version "2.18.2"

\layout {
  \context {
    \Lyrics
    \override StanzaNumber.font-size = #1
    \override StanzaNumber.font-series = #'medium
    \override StanzaNumber.stencil = #(make-stencil-boxer 0.15 0.4 ly:text-interface::print)
  }
}

\lyrics {
  \set stanza = "B:" T
}

lily-klaus111b-1.png


Eine Beobachtung habe ich leider machen müssen, die möglicherweise mit der Installation von 2.18 zusammenhängt:
Eine Linksverschiebung der hoch- oder tiefgestellten Ziffern (über negative Zahlen in translate) ist offenbar nicht mehr möglich (Code s.u.).

Ich hatte leider seit meinem Upgrade auf Windows 7 keine Version als 2.16.2 mehr, aber das Verhalten hat sich tatsächlich geändert: man kann mit \translate alleine keine "Überlappungen" mehr erzeugen.
Dein Beispiel reduziert sich im wesentlichen auf:
Code:
\markup {
    D
     \small \smaller \translate #'(-0.5 . 1.9) \line {7}
     \small \smaller \translate #'(-3.5 . -1.5) \line {3}
  }
Man könnte mit einer Kombination aus \hspace und \raise bzw. \lower auch den gewünschten Effekt erzielen, aber ich umgehe das immer mit dem Befehl \combine, mit dem man zwei Zeichen übereinanderlegen kann (auf einen Referenzpunkt), ohne, daß sie sich gegenseitig beeinflussen/stören. Dann läßt sich alles mit \translate positionieren.

Ansonsten:
  • \small \smaller läßt sich durch \tiny ersetzen. Wenn Du aber die gleiche Größe wie bei den mit \super hochgestellten Zahlen möchtest, empfiehlt sich \teeny. Oder gleich mit \fontsize explizit die gewünschte Größe vorgeben
  • Die \line-Anweisung um die Zahlen ist überflüssig, es gibt ja nur ein Argument. Spezielle Probleme im Lyrics-Modus lassen sich durch Anführungszeichen ("7") umgegen.
  • Ich habe in meinem Beispiel per \combine nur die 3 unter das D geschoben und die Hochstellung per \super realisiert, dann sieht es genauso aus wie der D7, den Du sonst zusammenbaust:
Code:
\markup \concat { \combine \translate #'(0.4 . -1.5) \teeny "3" D \super "7" }
lily-klaus111b-2.png


Viele Grüße
Torsten
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo Torsten,

vielen Dank für Deine hilfreichen Erklärungen und Verbesserungen! :great:

Da wegen der Versionsänderung meine früher erstellten Funktionssymbole nicht mehr korrekt dargestellt wurden (die Ziffern hierin), habe ich sie angepasst (s.u.).
Auf /super habe ich dabei i.d.R. verzichtet, da es nicht immer zu einem ausgewogenen Bild führt.
Eine Herausforderung ist auch der Durchstrich. Man kann über das Makro zwar schön die Strichstärke, ja auch die Orientierung wählen, doch z.B. für
Doppeldominanten konnte ich keine günstige Anpassung finden.
Ich habe eine Lösung mit rotierten und positionierten Unterstrichen probiert, was ganz gut geklappt hat, aber natürlich nicht ideal ist.
Vorläufig verwendbar sind die Symbole m.E., insbesondere wenn man bedenkt, daß man beim Satz von Funktionsanalysen selbst in erstklassigen Fachverlagen größere Kompromisse eingegangen werden.

Mit Lilypond lassen sich vermutlich irgendwann alle Schwierigkeiten ausräumen und mit einer Makrobibliothek wäre das Ganze wohl auch gut handhabbar.

Insofern bin ich auf jede Verbesserung und gespannt und werde mich bei Gelegenheit vielleicht auch etwas mit einer bescheideneren Makroprogrammierung befassen.
Es gibt momentan natürlich noch viele andere Themen bei Lilypond, bei denen ich gerne dazulerne.

Viele Grüße

Klaus

Funktionsanalyse_Symbole1.png


Code:
\version "2.18.2"
#(set-global-staff-size 60)
\layout {
  \context {
    \Lyrics
    \override StanzaNumber.font-size = #1
    \override StanzaNumber.font-series = #'medium
    \override StanzaNumber.stencil = #(make-stencil-boxer .15 0.4 ly:text-interface::print)
  }
}
%ursprüngliches Makro für das diagonale Durchstreichen
#(define-markup-command (diagonal-stroke layout props arg)
  (markup?)
  #:category font
  #:properties ((font-size 0) (thickness 1.5) (extension 0.07))
  (let*
   ((thick (* (magstep font-size)
      (ly:output-def-lookup layout 'line-thickness)))
    (underline-thick (* thickness thick))
    (markup (interpret-markup layout props arg))
    (x1 (car (ly:stencil-extent markup X)))
    (x2 (cdr (ly:stencil-extent markup X)))
    (y1 (car (ly:stencil-extent markup Y)))
    (y2 (cdr (ly:stencil-extent markup Y)))
    (dx (* extension (- x2 x1)))
    (dy (* extension (- y2 y1)))
    (line (make-line-stencil underline-thick
      (- x1 dx) (- y1 dy)
      (+ x2 dx) (+ y2 dy))))
   (ly:stencil-add markup line)))

% dickerer Durchstrich
#(define-markup-command (diagonal-stroke_d layout props arg)
  (markup?)
  #:category font
  #:properties ((font-size 0) (thickness 3.0) (extension 0.07))
  (let*
   ((thick (* (magstep font-size)
      (ly:output-def-lookup layout 'line-thickness)))
    (underline-thick (* thickness thick))
    (markup (interpret-markup layout props arg))
    (x1 (car (ly:stencil-extent markup X)))
    (x2 (cdr (ly:stencil-extent markup X)))
    (y1 (car (ly:stencil-extent markup Y)))
    (y2 (cdr (ly:stencil-extent markup Y)))
    (dx (* extension (- x2 x1)))
    (dy (* extension (- y2 y1)))
    (line (make-line-stencil underline-thick
      (- x1 dx) (- y1 dy)
      (+ x2 dx) (+ y2 dy))))
   (ly:stencil-add markup line)))

% Durchstrich in Querrichtung
#(define-markup-command (qdiagonal-stroke_d layout props arg)
  (markup?)
  #:category font
  #:properties ((font-size 0) (thickness 3.0) (extension 0.07))
  (let*
   ((thick (* (magstep font-size)
      (ly:output-def-lookup layout 'line-thickness)))
    (underline-thick (* thickness thick))
    (markup (interpret-markup layout props arg))
    (x1 (cdr (ly:stencil-extent markup X)))
    (x2 (car (ly:stencil-extent markup X)))
    (y1 (car (ly:stencil-extent markup Y)))
    (y2 (cdr (ly:stencil-extent markup Y)))
    (dx (* extension (- x2 x1)))
    (dy (* extension (- y2 y1)))
    (line (make-line-stencil underline-thick
      (- x1 dx) (- y1 dy)
      (+ x2 dx) (+ y2 dy))))
   (ly:stencil-add markup line)))


\lyrics {

  \markup \concat {
    \combine \translate #'(1.7 . 1.5) \tiny "7"
    \combine \translate #'(0.4 . -1.4) \tiny "3"
D
                  }
_                  
                 
    \markup \concat {
     \combine \translate #'(2.7 . 0.8) \tiny "T - D"
     \combine \translate #'(2.0 . 0.4) \tiny "______"
D
                    }            
_
_
 
    \markup \concat {
     \combine \translate #'(-0.6 . 0.5) D
     \combine \translate #'(1.6 . 1.5) \tiny "7" D
                    }

_
     \markup {
      \combine \translate #'(0.4 . 1.4) \rotate #135 "___"
      \combine \translate #'(1.0 . 0.5) "D"
      \combine \translate #'(1.5 . -0.0) "D"
               \translate #'(3.2 . 1.5) \tiny "7"               
            }
_
   \markup \concat {
    \combine \translate #'(-0.6 . 0.5) D
    \combine \translate #'(1.6 . 1.5) \tiny "7" { \qdiagonal-stroke_d D }
                  }
                                  
_

 
    \markup \concat {
     \combine \translate #'(-0.6 . 0.5) D
     \combine \translate #'(1.6 . 1.2) \smaller "v" D
                    }
_

     \markup {
      \combine \translate #'(0.4 . 1.4) \rotate #135 "___"
      \combine \translate #'(1.0 . 0.5) "D"
      \combine \translate #'(1.5 . -0.0) "D"
               \translate #'(3.1 . 1.2) \smaller "v"               
             }
_
           
    \markup \concat {
  %  \fontsize #4
     \combine \translate #'(2.0 . 3.2) \tiny "9"
     \combine \translate #'(2.0 . 1.7) \tiny "7-8" 
     \combine \translate #'(2.0 . 0.3) \tiny "<4-5" 
     \combine \translate #'(0.5 . -1.4) \tiny "3" D
                    }  
_
    \markup \concat {
    \combine \translate #'(2.0 . 3.2) \tiny "9"
    \combine \translate #'(2.0 . 1.7) \tiny "7-8" 
    \combine \translate #'(2.0 . 0.3) \tiny "<4-5" 
    \combine \translate #'(0.5 . -1.4) \tiny "3" { \qdiagonal-stroke_d D }
                    }  
_

                 
    \markup { \concat { \diagonal-stroke D \super "7" } }
   
    \markup { \concat { \diagonal-stroke_d D \super "7" } } 
   
    \markup { \concat { \qdiagonal-stroke_d D \super "7" } }
   

    \markup \combine D \translate #'(-0.5 . 1.2) { \rotate #135 "__" }

    \markup \combine \translate #'(-0.5 . 0.6) "D" "D" 
  
    \markup {
      \combine \translate #'(0.4 . 1.4) \rotate #135 "___"
      \combine \translate #'(1.0 . 0.5) "D"
               \translate #'(1.5 . -0.0) "D"
            }
_

    \markup \concat {
     \combine \translate #'(1.8 . 1.7) \tiny "6"
     \combine \translate #'(1.8 . 0.3) \tiny "5"
     \combine \translate #'(0.3 . -1.4) \tiny "3" S
                  }
_
    \markup \concat {
     \combine \translate #'(1.3 . 1.7) \tiny "6"
     \combine \translate #'(1.3 . 0.3) \tiny "5"
     \combine \translate #'(0.2 . -1.4) \tiny "3" s
                  } 

_
    \markup \combine \translate #'(-0.5 . 0.6) "S" "S"
_

    \markup { \concat { s \small \super "N" } }
       
    \markup { \concat { s \small \super "n" } }

}
 
Hallo Klaus,

das wird ja vom Ergebnis her schon immer besser! :great:

Ich würde nur bei den verschränkten Zeichen das zweite und nicht das erste "translaten", dann steht das Symbol nämlich schön auf der Grundlinie:

Code:
\markup \line { \italic "über" "der Grundlinie:" "D" \combine \translate #'(-0.5 . 0.6) "D" "D" }

\markup \line { \italic "unter" "der Grundlinie:" "D" \combine "D" \translate #'(0.5 . -0.6) "D" }

Zum Vergleich (oben und unten) das jeweilige Ergebnis:

lily-klaus111-3.png


Ich habe mittlerweile den "Durchbruch" für eine komfortable Handhabung geschafft, jetzt ist nur noch Feinarbeit angesagt.
Es ist immer wieder überraschend, was man Lily alles beibringen kann. ;)

Viele Grüße
Torsten
 
Lieber Torsten,

gerade bin ich auf diesen (alten) Thread gestoßen und wollte nachfragen, was der aktuelle Stand bei Deinem Projekt
ist und ob Du es eventuell veröffentlichen könntest.
Ich habe selber eine Bibliothek von Funktionssymbolen in Lilypond angelegt, allerdings mangels Scheme-Einarbeitung
nur mit \markup und ohne Deine Makrofunktionalität (d.h. alle möglichen Kombinationen einzeln... und jetzt bin ich an
der Grenze des Sinnvollen angelangt).

Für mich als Musiklehrer bietet Lilypond die Möglichkeit, meine Übungs- und Abikadenzen einmal mit unsichtbaren
Stimmen als Aufgabenblatt und einmal direkt als Lösungsblatt zu drucken.

Viele Grüße
Daniel
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben