Autor Thema: zwei Taktarten zu Beginn des Stücks  (Gelesen 3565 mal)

Luftikussl

  • Member
zwei Taktarten zu Beginn des Stücks
« am: Dienstag, 2. September 2014, 10:18 »
Hallo miteinander,

ich versuche, mich gerade in Lilypond einzuarbeiten, bin vom Ergebnis des Notendrucks einfach begeistert, muß allerdings mit der Art der Eingabe erst einmal zurecht kommen, noch sehr viel lernen.

Eins konnte ich jetzt aber weder im Handbuch noch im Forum (habe hoffentlich gut genug gesucht)  finden:

Wie kann ich zu Beginn eines Musikstücks zwei Taktarten nebeneinander schreiben und dann im Stück frei wählen, welche Taktart ich verwende. Ein Beispiel zur Verdeutlichung: Evangelisches Kirchengesangbuch Nr. 327 "Wunderbarer König". Bisher steht da bei mir eben leider nur der 2/2- Takt. Im Stück unterdrücke ich die Taktwechsel mit  \override Staff.TimeSignature.stencil = ##f  Dann muß ich aber trotzdem immer den Taktwechsel eingeben, er wird nur nicht ausgegeben. Aber das wird wohl nicht anders gehen.

In den Foren habe ich einen Hinweis auf "double-time-signature" gefunden,
http://lsr.di.unimi.it/LSR/Search?q=time+signature
bin damit aber leider nicht klar gekommen, was aber vielleicht auch an meinem mangelhaften Englisch liegen mag.

Kann mir bitte jemand auf die Sprünge helfen?

Mit freundlichen Grüßen

Luftikussl

trulli

  • Member
Re: zwei Taktarten zu Beginn des Stücks
« Antwort #1 am: Dienstag, 2. September 2014, 10:58 »
Moinsen,

meinst du vielleicht so etwas?
\version "2.18.0"
%% http://lsr.di.unimi.it/LSR/Item?id=725
%% see also http://lilypond.org/doc/v2.18/Documentation/snippets/rhythms
#(define ((double-time-signature a b c d) grob)
   (grob-interpret-markup grob
          (markup #:override '(baseline-skip . 2.3) #:number
                  (#:line ((markup (#:fontsize -1 #:column (a b)))
                           (#:fontsize -1 #:column (c d)))))))

music = \relative c' {
  \override Score.TimeSignature.stencil =
      #(double-time-signature  "2" "2" "6" "4")
  \time 3/4
  c8 b c d e f g4 g g g4 a8 g f e d2. \bar "|."
}

\score { \music }

Das ist einfach ein umgeschriebener Code zu deinem vorgegebenen Link.

Damit hier die Fragen leichter beantwortet werden können, solltest du immer folgendes beachten:
1) Poste ein Minimalbeispiel (also deinen Code), in dem deine Lilypond-Versionsnummer steht
2) Gib dein Ziel genau an, z.B. mit einer Zeichnung oder einem Scan
3) Suche vorher in den Handbüchern, Snippets und im Forum

Ansonsten wünsche ich dir viel Spaß hier...  ;D
Grüße von Trulli

Luftikussl

  • Member
Re: zwei Taktarten zu Beginn des Stücks
« Antwort #2 am: Samstag, 6. September 2014, 13:22 »
Hallo Trulli,

entschuldige, daß ich nicht gleich geantwortet habe, mein Internet-Zugang hatte in den letzten Tagen Probleme.

Herzlichen Dank für die Hilfe, ja, so funktioniert es wie gewünscht. Toll.

Aber verstehen tu ich bislang eher "Bahnhof"...

Wo ist denn eine komplette Referenz zu finden? Unter http://lilypond.org/doc/v2.18/Documentation/notation/lilypond-index finde ich nicht alles.

Das geht gleich mit der Raute "#" und "define" los. Ich nehme an, da wird eine benutzerdefinierte Funktion geschrieben? Gibt es dazu Hilfen? Ich würde mich freuen, Weiteres zu hören.

Übrigens hab ich bei meinem in der esrsten Post angeführten Link eine ganze Zeit gebraucht, bis ich begriff, daß man das Notenbeispiel anklicken muß, um den hinterlegten Code zu sehen...

Was zukünftige Fragestellungen betrifft, werde ich versuchen, Deine Hinweise zu beherzigen.

Mit freundlichen Grüßen

Luftikussl

trulli

  • Member
Re: zwei Taktarten zu Beginn des Stücks
« Antwort #3 am: Samstag, 6. September 2014, 22:37 »
Zitat
Aber verstehen tu ich bislang eher "Bahnhof"...

Ha, ha, so geht es jedem, der ohne Vorkenntnisse mit Lily anfängt - dazu gehörte ich übrigens auch. Die gute Nachricht: Man kann es lernen. Die schlechte Nachricht: Es dauert. Darum gleich mal ein Zeitspartipp: Speichere alle für dich wichtigen Lösungen in sinnvoll benannten Dateien. Die Lösung aus diesem Post z.B. unter "Doppelte Taktarten.ly." Das erspart dir später viel Sucherei.

Zitat
Wo ist denn eine komplette Referenz zu finden?

Da man mit Lilypond so gut wie alles machen kann und es ständig weiter entwickelt wird, gibt es keine vollständige Referenz. Das Meiste findest du aber in den Handbüchern, den Snippets und hier im Forum. Nützlich kann es auch sein, fertige Partituren von anderen zu studieren. Das kann man z.B. im Mutopia-Projekt. Das Thema Lily ist unendlich groß... suche deshalb nur die Partituren und Themen, die für deine persönlichen Zwecke relevant sind.

Zitat
Das geht gleich mit der Raute "#" und "define" los. Ich nehme an, da wird eine benutzerdefinierte Funktion geschrieben? Gibt es dazu Hilfen?

Ja, das ist Scheme. Zu diesem Thema findest du hier im Forum und im Netz Hinweise und Anleitungen. Ich kann auch kein Scheme, aber mit ein bisschen logischem Verständnis kann man die Definitionen verstehen und sie nach den eigenen Wünschen ändern. So habe ich es mit deinem Link aus den Snippets gemacht. Am Anfang werden hier durch Buchstaben Argumente definiert, baseline-skip gibt als Zahl den Abstand zwischen Zähler und Nenner an, fontsize ist die Schriftgröße und column bündelt die Zahlen in einer Spalte. Wenn die Definition dann im Notentext angewendet wird, müssen natürlich der Reihe nach die Argumente angegeben werden. Durch Änderungen der Zahlen in den Definitionen kann man gut erkennen, wie eine Definition funktioniert.

Grüße von Trulli

ingmar

  • Member
re: zwei Taktarten zu Beginn des Stücks
« Antwort #4 am: Freitag, 18. März 2016, 11:36 »
hallo,

das Snippet funktioniert soweit gut. Ich habe allerdings Schwierigkeiten bei verkleinerten Systemen:

\version "2.19.37"

#(define ((double-time-signature a b c d) grob)
   (grob-interpret-markup grob
          (markup #:override '(baseline-skip . 2.3) #:number
                  (#:line ((markup (#:fontsize -1 #:column (a b)))
                           (#:fontsize -1 #:column (c d)))))))

KLEIN = {
\set fontSize = #-4
\override StaffSymbol.staff-space = #(magstep -4)
\override StaffSymbol.thickness = #(magstep -4)
}
GROSS = {
\set fontSize = #4
\override StaffSymbol.staff-space = #(magstep 4)
\override StaffSymbol.thickness = #(magstep 4)
}

\score {
\new Staff \with { \GROSS } {
\override Score.TimeSignature.stencil =  #(double-time-signature  "6" "4" "3" "2")
\time 3/2
\relative c' { c2 d e d2. d4 e c }
}
}

\score {
\new Staff \with { \KLEIN } {
\override Score.TimeSignature.stencil =  #(double-time-signature  "6" "4" "3" "2")
\time 3/2
\relative c' { c4 d c e2. d2 e c }
}
}

Das Beispiel zeigt eine vergrößerte und eine verkleinerte Notenzeile. Die erste ist in Ordnung, in der zweiten werden die Ziffern zwar offenbar genügend verkleinert, aber ihre Position ist nicht richtig mitskaliert).

Woran liegt das?

--ingmar

fugenkomponist

  • Member
Re: zwei Taktarten zu Beginn des Stücks
« Antwort #5 am: Freitag, 18. März 2016, 14:32 »
Die Taktangaben-Ziffern im Font sind eigentlich in der richtigen Größe, also ist „(#:fontsize -1 … “ Quatsch. Dadurch werden die Ziffern nämlich zu klein und dann muss auch baseline-skip angepasst werden, weil ja eine Lücke zwischen den zu kleinen Zahlen bleiben muss. Mit Ziffern in der Standardgröße passt ein baseline-skip von 0 immer. Die Funktion sollte also folgendermaßen aussehen:
#(define ((double-time-signature a b c d) grob)
   (grob-interpret-markup grob
          (markup #:override '(baseline-skip . 0) #:number
                  (#:line ((markup (#:column (a b)))
                           (#:column (c d)))))))
Warum das Snippet eine Taktartangabe erzeugt, die so weit vom LilyPond-default abweicht, versteh ich nicht; das ergibt für mich keinen Sinn. Klar, es gibt Verlage, die die Taktartziffern kleiner als zwei Zwischenräume machen, aber das ist 1. meiner Meinung nach nicht besonders schön und 2. sollte das dann lieber im Musikfont passieren. Ein Beispiel für einen solchen Font ist Gonville (der erste Font außer Feta, der von LilyPond genutzt werden konnte; inzwischen gibts ja LilyJAZZ und ab Version 2.19.12 können ja diese drei Fonts sowie weitere ca. 10 auf die gleiche einheitliche, einfachere Art genutzt werden).

Edit: Noch ein off-topic-Kommentar: \KLEIN und \GROSS kannst du je nach Anwendungsfall durch \magnifyStaff #(magstep -4) bzw. \magnifyStaff #(magstep 4) ersetzen. Das ändert das horizontale Spacing passend mit.
« Letzte Änderung: Freitag, 18. März 2016, 14:48 von fugenkomponist »

ingmar

  • Member
re: zwei Taktarten zu Beginn des Stücks
« Antwort #6 am: Freitag, 18. März 2016, 14:52 »
Jau! Jetzt passt es. Danke.

leider ist der Thread nicht von mir, sonst würd ich "(GELÖST)" dranschreiben.

\magnifyStaff --> Ist das neu? Kannte ich bisher nicht.


--ingmar

fugenkomponist

  • Member
Re: zwei Taktarten zu Beginn des Stücks
« Antwort #7 am: Freitag, 18. März 2016, 15:06 »
Ja, ist neu, genauso wie \magnifyMusic. Letzteres ändert glaub ich noch nicht das horizontale Spacing, solls aber dann auch tun (bin mir aber nicht sicher, vielleicht ist es inzwischen doch schon fertig).