Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: unique75m am Mittwoch, 18. April 2018, 18:38

Titel: Taktzahlen für alle Instrumente
Beitrag von: unique75m am Mittwoch, 18. April 2018, 18:38
Hallo

in meinem Lillypond-Projekt werden die Taktzahlen für jeden 2. Takt angezeigt. Dies habe ich mit folgendem Code erreicht:


\override Score.BarNumber.break-visibility = #end-of-line-invisible
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)


Ich habe ein Score mit mehreren Staffs, die wiederum mehrere Voices haben. Obigen Code habe ich in jeder Voice eingebaut im \relative Block, wo die Noten stehen. Die Taktzahlen werden aber nur für den 1. Staff angezeigt.

Wie bekommt man das hin, dass die Taktzahlen über den Takten aller Staffs stehen? Bzw. wie kann man das pro Staff kontrollieren?

Ich habe die obigen Zeilen auch schon aus den Voices herauskopiert und in den Staff-Definitionen untergebracht, ebenfalls ohne Erfolg.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Malte am Mittwoch, 18. April 2018, 20:04
Keine Zeit für Erklärungen, aber folgendes könnte helfen:

\layout {
  \context {
    \Score
    \remove Bar_number_engraver
  }
  \context {
    \Staff
    \consists Bar_number_engraver
  }
}


Edit: Jetzt hab ich kurz Zeit, mal anständig Hallo zu sagen. Willkommen im Forum! Bitte gib zu deinen Fragen immer deine LilyPond-Version an und nach Möglichkeit außerdem ein Minimalbeispiel.

Hier ein ausführlicheres Beispiel, welches zeigt, wie du allgemeine Änderungen machen kannst (im \layout-Block), um nicht das gleiche in alle Staffs schreiben zu müssen. Außerdem habe ich in zwei Staffs diese generellen Dinge dann wieder überschrieben (im \with-Block):\version "2.19.81"

\layout {
  \context {
    \Score
    \remove Bar_number_engraver
    \override BarNumber.break-visibility = #end-of-line-invisible
    barNumberVisibility = #(every-nth-bar-number-visible 2)
  }
  \context {
    \Staff
    \consists Bar_number_engraver
  }
}

<<
  \new Staff { R1*20 }
  \new Staff { R1*20 }
  \new Staff \with {
    \remove Bar_number_engraver
  } { R1*20 }
  \new Staff { R1*20 }
  \new Staff { R1*20 }
  \new Staff \with {
    barNumberVisibility = #(every-nth-bar-number-visible 3)
  } { R1*20 }
  \new Staff { R1*20 }
>>

Das ganze klappt auch mit Version 2.18.2, dann sollte natürlich der \version-Befehl angepaßt werden.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: unique75m am Freitag, 27. April 2018, 22:43
Vielen Dank erstmal. Ich habe die erste Variante ausprobiert und Sie hat auch gleich funktioniert.

Ehrlich gesagt suche ich nach dem "schmerzfreiesten Weg" um handgeschriebene Noten zu digitalisieren. Mittlerweile habe ich von meinem Geigenlehrer ca. 50 DINA3 Blätter mit je 10 Instrumenten und teils 2 Voices pro Instrument und das innerhalb eines halben Jahres. Man kann sich vorstellen, wie der Papierstapel in 2-3 Jahren aussieht. Deswegen möchte ich das alles digitalisieren, zumal die Handschrift für mich als Anfänger oftmals zu unleserlich ist. Ich möchte dann gern auch nur die Voice separat drucken, die ich wirklich spiele. Das ganze soll dann später auf ein Tablet.

Bei Programmen wie MuseScore verplempert man zuviel Zeit mit der Nachformatierung, insbesondere wenn man Auszüge einzelner Voices macht ist die Formatierung komplett im Eimer. Die Noteneingabe ist auch alles andere als optimiert, man muss sich viel zu viele Tastenkombinationen merken oder zuviel mit der Maus bewegen, was Zeit kostet.

Bei LillyPond schreckt mich momentan die in meinen Augen oftmals zu umständliche Syntax ab. Das Lösen simpelster Probleme führt zu stundenlangem Durchwühlen der Dokumentation, was wie in diesem Falle hier erfolglos war. Erst deine Lösung hat mir geholfen. Sicherlich wird man irgendwann eine Grund-Template an Dateien haben, dass man immer wiederverwendet. Aber ich denke, sobald irgendein neues ungelöstes Problem auftritt, heißt das wieder, dass man stundenlang Dokumentation liest. Oder man hat so freundliche Helfer wie Dich in einem Forum :)

Ich würde Lillypond auch nicht als Empfehlung sehen für Leute wie meinen Geigenlehrer. Solange man ein Template bereitstellt, wo dann nur die Notenblöcke getippt werden wie "c cis d \upbow" ist das vielleicht noch alles verständlich. Bei Struktur-/Layoutproblemen wie diesem hier würden solche Leute alle das Handtuch werfen.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Manuela am Mittwoch, 9. Mai 2018, 12:04
Zitat von: unique75m am Freitag, 27. April 2018, 22:43
Ich würde Lillypond auch nicht als Empfehlung sehen für Leute wie meinen Geigenlehrer. Solange man ein Template bereitstellt, wo dann nur die Notenblöcke getippt werden wie "c cis d \upbow" ist das vielleicht noch alles verständlich. Bei Struktur-/Layoutproblemen wie diesem hier würden solche Leute alle das Handtuch werfen.

Dem Vernehmen nach sollen andere Notensatzprogramme auch nicht gerade einfach zum Erlernen sein  ;)

Irgendeine Krot wird man wohl fressen müssen, falls man am PC Noten setzen will.

Leider ist die Vergessenskurve auch ziemlich steil, wenn man längere Zeit nichts mit Lily gemacht hat. Für diesen Fall habe ich mir ein Wiki gebastelt, wo ich meine Erkenntnisse eintrage. Inzwischen kenne ich mich mit der Administration von Wikis bzw. der Mediawiki-Software hervorragend aus  ;)

Mit einem Wiki und der Transklusionslogik (https://www.mediawiki.org/wiki/Transclusion) wäre es sogar möglich, Scores von der Mediawikisoftware automatisch zusammensetzen zu lassen. Man müsste sich geeignete Vorlagen erstellen, was ich irgendwann machen werde. Einen Teil habe ich schon, aber nichts Herzeigbares.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Mittwoch, 9. Mai 2018, 14:23
Also ich nehme capella als Notenschreibmaschine. Damit schreiben sich die Noten mit am wenigsten Tastaturanschlägen verglichen zu MiseScore,Sibelius, Finale und Lilypond. Lilypond ist da das schlechteste Programm.

Je nachdem, was dem Notentext hinzugefügt werden muss, verwende ich Musescore oder capella.

Dann exportiere ich nach MusicXML und importiere es dann nach Lilypond. Es gibt wiederkehrende Ärgernisse bei diesem Import. Deswegen lasse ich ein Makro in Notepad drüberlaufen, dann ist ein wenig händische Nachbearbeitung nötig.

Für deinen Geigenlehrer sicher keine Option.

Zitat von: Manuela am Mittwoch,  9. Mai 2018, 12:04
Zitat von: unique75m am Freitag, 27. April 2018, 22:43
Ich würde Lillypond auch nicht als Empfehlung sehen für Leute wie meinen Geigenlehrer. Solange man ein Template bereitstellt, wo dann nur die Notenblöcke getippt werden wie "c cis d \upbow" ist das vielleicht noch alles verständlich. Bei Struktur-/Layoutproblemen wie diesem hier würden solche Leute alle das Handtuch werfen.

Dem Vernehmen nach sollen andere Notensatzprogramme auch nicht gerade einfach zum Erlernen sein  ;)

Irgendeine Krot wird man wohl fressen müssen, falls man am PC Noten setzen will.

Das ist leider ein Scheinargument, was eigentlich verhindert, eine sehr interessante Frage zu beantworten. Welches Interface macht aller Wahrscheinlichkeit der Mehrheit der Nutzer am wenigsten Probleme. Oder anders formuliert, was ist für die Masse am intuitivsten?

Und da dürften sich klare Tendenzen feststellen lassen. Das mag schwierig sein. Aber ich habe Finale, Musescore, Sibelius, Capella und lilypond benutzt. unique75m beschreibt die Situation ganz gut.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Manuela am Mittwoch, 9. Mai 2018, 14:35
Zitat von: Hilflos-im-Code am Mittwoch,  9. Mai 2018, 14:23

Das ist leider ein Scheinargument, was eigentlich verhindert, eine sehr interessante Frage zu beantworten. Welches Interface macht aller Wahrscheinlichkeit der Mehrheit der Nutzer am wenigsten Probleme. Oder anders formuliert, was ist für die Masse am intuitivsten?

Und da dürften sich klare Tendenzen feststellen lassen. Das mag schwierig sein. Aber ich habe Finale, Musescore, Sibelius, Capella und lilypond benutzt. unique75m beschreibt die Situation ganz gut.

Und was wäre deiner Meinung das Tool, das am wenigsten Probleme bereitet? Lilypond ist auf den ersten Blick wenig intuitiv, das mag sein. Trotzdem möchte ich kein WYSIWY(N)G-Notensatzprogramm mehr verwenden. Bei Musescore bin ich z.B. an den Pausen gescheitert, dass man die Zahl der Takte im Vorhinein angeben muss und keine Pausen löschen kann. Einmal eine falsche Eingabe, und das war's dann, ich kriegte es nie wieder hin.

Capella habe ich vor vielen Jahren mal benutzt, ich kann mich nicht wirklich mehr daran erinnen. Mit einiger Eingewöhnungszeit ging es ganz gut, das weiß ich noch.

Ich muss gestehen, dass ich seit jeher eine Vorliebe für Texteingaben habe. Die Benutzeroberfläche von Word z.B. ist mir immer auf die Nerven gegangen. Der beste und für mich am einfachsten zu bedienende Editor verwendete Kommandos, die mit einem Punkt in der 1. Spalte begannen. So schön und problemlos wie dieses Programm hat Word nie formatiert.

Ein Vorteil von Lilypond ist außerdem, dass die Daten reine Textdateien sind, die zur Not auch von einem Menschen gelesen werden können.

Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Mittwoch, 9. Mai 2018, 15:04
Für jemanden der schnell und flüssig arbeiten will und sich mit dem Notensatz nicht repräsentieren muss, Capella. Capella ist aber im Notenbild sehr fehlerhaft. Wer sich das aus Rollengründen nicht leisten kann, Sibelius.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Malte am Mittwoch, 9. Mai 2018, 17:20
Ich habe, wenn auch nicht lang, probiert, mit Finale und Sibelius zu arbeiten. Bei beiden waren die allerersten Schritte (also z. B. Eingabe von einfachen Noten) intuitiver als in LilyPond, ja. Aber das wars dann auch schon, sobald man etwas kompliziertere Dinge brauchte, war ich echt enttäuscht von der Schwierigkeit, die richtigen Menüs und Werkzeuge zu finden.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Manuela am Mittwoch, 9. Mai 2018, 21:26
Zitat von: Hilflos-im-Code am Mittwoch,  9. Mai 2018, 14:23Damit schreiben sich die Noten mit am wenigsten Tastaturanschlägen verglichen zu MiseScore,Sibelius, Finale und Lilypond. Lilypond ist da das schlechteste Programm.

Wirklich? Ich tippe die Noten ungefähr so schnell ein wie ich sie mir vorsagen kann. Ob ich schneller wäre, wenn ich jede Note mit der Maus auf die richtige Position hinfummeln müsste, wage ich zu bezweifeln.

Wie geht eigentlich das Transponieren in Sibelius, Finale etc? In Lilypond füge ich ein relativ einfaches Kommando ein.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Donnerstag, 10. Mai 2018, 10:25
Zitat von: Malte am Mittwoch,  9. Mai 2018, 17:20
Ich habe, wenn auch nicht lang, probiert, mit Finale und Sibelius zu arbeiten. Bei beiden waren die allerersten Schritte (also z. B. Eingabe von einfachen Noten) intuitiver als in LilyPond, ja. Aber das wars dann auch schon, sobald man etwas kompliziertere Dinge brauchte, war ich echt enttäuscht von der Schwierigkeit, die richtigen Menüs und Werkzeuge zu finden.
Einzelfall und Statistik.

Du bist in diesem Konflikt eine ziemlich schlechte Referenz. Du hast vor deinem Musikschulstudium Informatik studiert. Dir sind die Gedankengänge und Tippwege, um mit Lilypond klarer und vertrauter. Um so etwas wie Frescobaldi flott bedienen zu können ist hilfreich, schon früher mit solchen Werkzeugen gearbeitet zu haben. Bei Bedienungskonzepten greift man auch auf bisher erworbene Gewohnheiten und Fähigkeiten zurück. Und da ist ein Informatiker klar im Vorteil.
Zitat von: Manuela am Mittwoch,  9. Mai 2018, 21:26
Zitat von: Hilflos-im-Code am Mittwoch,  9. Mai 2018, 14:23Damit schreiben sich die Noten mit am wenigsten Tastaturanschlägen verglichen zu MiseScore,Sibelius, Finale und Lilypond. Lilypond ist da das schlechteste Programm.

Wirklich? Ich tippe die Noten ungefähr so schnell ein wie ich sie mir vorsagen kann. Ob ich schneller wäre, wenn ich jede Note mit der Maus auf die richtige Position hinfummeln müsste, wage ich zu bezweifeln.

Manuela, nimm es mir nicht übel, das ist jetzt doch wirklich Unfug. Wenn ich die Noteneingabe als solches beschreibe, hat dass doch nichts mit der späteren Positionierung zu tun.

Dass die Anschlagszahl bei Capella niedriger ist, habe ich an anderer Stelle hier schon mal vorgerechnet. Du hast dich an diesem Thread beteiligt.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Malte am Donnerstag, 10. Mai 2018, 11:38
Zitat von: Hilflos-im-Code am Donnerstag, 10. Mai 2018, 10:25
Zitat von: Malte am Mittwoch,  9. Mai 2018, 17:20
Ich habe, wenn auch nicht lang, probiert, mit Finale und Sibelius zu arbeiten. Bei beiden waren die allerersten Schritte (also z. B. Eingabe von einfachen Noten) intuitiver als in LilyPond, ja. Aber das wars dann auch schon, sobald man etwas kompliziertere Dinge brauchte, war ich echt enttäuscht von der Schwierigkeit, die richtigen Menüs und Werkzeuge zu finden.
Einzelfall und Statistik.
Kein Satz. Aber ich weiß, was du meinst. Allerdings darf ich darauf hinweisen, daß ich an einem Finale-Kurs an meiner Hochschule teilgenommen habe. Intuitiv war das Ganze für keine*n der zwölf Teilnehmer*innen, sobald es um mehr als ,,ich gebe einstimmige Noten ohne Artikulation ein" ging. LilyPond ist hier nicht intuitiver, aber ich will einfach festhalten, daß auch Finale und Sibelius nicht selbsterklärend sind.

Zitat
Du bist in diesem Konflikt eine ziemlich schlechte Referenz. Du hast vor deinem Musikschulstudium Informatik studiert. Dir sind die Gedankengänge und Tippwege, um mit Lilypond klarer und vertrauter. Um so etwas wie Frescobaldi flott bedienen zu können ist hilfreich, schon früher mit solchen Werkzeugen gearbeitet zu haben. Bei Bedienungskonzepten greift man auch auf bisher erworbene Gewohnheiten und Fähigkeiten zurück. Und da ist ein Informatiker klar im Vorteil.
Falsch.

Ich habe 2008 LilyPond zum ersten Mal genutzt und erst 2011 mein Informatikstudium begonnen. Mit Finale habe ich vorher seit 1999 schon probiert zu arbeiten, und zwar in den Versionen von 1998 und 2007. (Inzwischen habe ich auch Finale 2014 und Sibelius 7 verwendet.)

Natürlich ist es wahr, daß Gewohnheiten sich dann doch irgendwie widerspiegeln. Für den allerersten Anfang mag das auch noch einen Unterschied geben, aber bei komplizierteren Dingen braucht jedes mir bekannte Notensatzprogramm ordentlich Einarbeitungszeit.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Freitag, 11. Mai 2018, 09:40
Zitat von: Malte am Donnerstag, 10. Mai 2018, 11:38
Mit Finale habe ich vorher seit 1999 schon probiert zu arbeiten, und zwar in den Versionen von 1998 und 2007.
Mein herzliches Beileid.

Dass Du Lilypond schon vor deinem Studium besser fandest, wundert mich aber nicht. Dass Du Informatik studiert hast, spricht doch für eine gewisse Vorgeprägheit deiner Person. Zu  C64 Zeiten hatte ich einen Klassenkameraden und Außenseiter für den war die höchste Wonne in Maschinensprache zu programmieren. Wir waren mit Basic glücklich. Und wer hat Informatik studiert?

Persönlich bin ich der Ansicht, dass es eine Gruppe von Menschen gibt, denen bestimmte Konzepte und Herangehensweisen von Natur aus leichter fallen oder mehr Genuß verschaffen. Diese Gruppe ist aber auch eine Minderheit. Die entwickelt dann Sachen und versucht dem Rest der Menschheit klarzumachen, dass diese Konzepte für alle besser und leichter seien.

Diese Streits was da besser ist, ist eher ein Streit darum, nicht zu einer spleenigen Minderheit zu gehören.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Manuela am Montag, 14. Mai 2018, 08:16
Zitat von: Hilflos-im-Code am Freitag, 11. Mai 2018, 09:40
Diese Streits was da besser ist, ist eher ein Streit darum, nicht zu einer spleenigen Minderheit zu gehören.

Ich sehe das nicht als Streit, sondern als Diskussion, wo hoffentlich jeder seine eigene Meinung haben darf, ohne dass sie als Unfug bezeichnet wird.  ;)
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: rgree am Montag, 14. Mai 2018, 12:58
Liebe Leute
Ich erfasse fast nur Streichquartett-Partituren und gehe dann immer folgendermaßen vor:
(vielleicht sollte ich noch erwähnen, dass ich früher IT-Spezialist war)

1. Erfassung mit Denemo.
   Das hat zwar die Überwindung einer gewissen Lernkurve erfodert, es war aber nur eine kleine.
   In Denemo kann man auch schön die 4 Stimmen gleichzeit erfassen, ganz oder teilweise anhören etc.
   Als letztes erzeuge ich einen sogenannten "Quick-Lilypond"-Output, eine Text-Datei,
   die von Lylipond ohne Murren akzeptiert würde, die ich aber in einem leistungsfähigen   

2. Texteditor
   mit ein paar Handgriffen so ändere, dass ich sie in
   
3. Frescobalid
   per Cut und Paste in ein (von mir gebasteltes) Template einsetzen kann. Das Template kann das Endprodukt schon vollständig erzeugen,
   enthält aber statt der richtigen Noten Dummy-Noten
   Jetzt wird nur noch mit Fresobaldi gearbeitet, um die letzten Feinheiten anzubringen.
   
Tatsächlich gibt Lilypond viele Kröten zu schlucken, die ja auch teilweise genannt wurden.
Ich würde noch ergänzen,
- dass ich es erstaunlich finde, dass ausgerechnet eine solch skurrile Programmiersprache wie das Lisp-Derivat "Scheme" (ich kenne ungefähr 10 Programmiersprachen ganz gut)
  als Interface-Spache gewählt wurde; sie ist - nach meiner Beobachtung und was hier so im Forum ausgebreitet wird -
  für das Gros der Lilypond-Anwender (insbes. ohne IT-Hintergrund) extrem gegen-intuitiv; was übrigens nach meinem Geschmack auch für viele Scheme-Funktionen gilt;
  Beispiel \partial
    dass z.B. \partial 4. dasselbe ist wie \partial 8*3,
    aber das so etwas wie \partial 3/8 (für mich das Intuitivste)
    nicht unterstützt wird, obwohl der \time-Befehl ja diese Art Parameter akzeptiert;
    dass dann in diesem Zusammenhang die Regel gilt, das \partial innerhalb eines Musikstücks nicht nochmal kommen darf,
    obwohl es klaglos (unter Absonderung eines Warning) funktioniert, und man stattdessen so etwas schreiben muss wie
    \set Timing.measurePosition = #(ly:make-moment -1/8) % = \partial 4. : schon wieder eine andere Art zu parametrieren;
    mir ist als IT-ler natürlich klar, dass das alles wohldefinierte Funktionen sind, aber wer kann sie ohne Doku-Studium bewältigen,
    wo doch so einfach und klar ist was man will   
- dass eigentlich eine vernünftige Preprozessor-Sprache fehlt, mit der man die Wiederbenutzbarkeit der Quellen stark steigern könnte;
  der \tag-Mechanismus ist dafür ziemlich unzureichend: er verlangt, dass der bedingte Text ein Musikstück ist;
  aber wenn man nun eine bedingtes Markup haben will, wird's schon schwierig, geschweige denn eine flexiblere Ausgabe von Titelzeilen
  je nach dem Zweck, den die Notenausgabe erfüllen soll;
  außerdem fehlt als Gegenpart zu \tag so etwas wie \else, dessen Verfügbarkeit viel vereinfachen würde;
  eine Preprozessorsprache sollte nichts wissen über irgendwelche Syntax-Erfodernisse des Textes, den sie bearbeitet, sondern
  zuverlässig, gesteuert durch Preprozessor-Variablen, die Zusammenstellung der Quellen bewerkstelligen, auf die DANACH der
  Interpreter losgeht; so wird es in C++, in Delphi (oder wo auch immer noch) vorbildlich angeboten;
  so etwas ist - sogar mit geschachtelten if-else-Strukturen - relative leicht zu implementieren (hab ich schon gemacht): Aufwand 3 Tage,
  sofern die Regel gilt, dass die Preprozessor-Steurungs-Direktiven sich immer auf Spalte 1 des Source-Textes befinden und ein Prefix
  haben, das mit einem Kommentarzeichen beginnt, also zb. %$%define  %$%if  %$%else  %$%elseif  %$%end  %$%undefine:
  dadurch wäre sogar die Abwärtskompatibilität gewährleistet
  (ich breche das mal hier ab, bevor die Begeisterung mit mir durchgeht :-) )
 
  TROTZ ALLEM BLEIBT FÜR MICH ABER IMMER EIN FAZIT, Lilypond (ein kostenloses(!) Tool)) produziert letztlich das schönste und professionellste Notenbild.
  Und das ist das wichtigste und dafür schlucke ich dann halt auch ein paar Kröten. 

Schönen Tag wünscht Euch
Reinhard
   
 
         

Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: unique75m am Montag, 14. Mai 2018, 19:19
Ohje da hab ich ja eine Diskussion losgetreten :-)

Ich schließe mich aber meinem Vorredner (oder -schreiber :-)) "rgree" an. Lilypond vertritt den Anspruch das schönste Notenbild der Welt produzieren zu wollen. Vielleicht hätte man aber auch mal den Anspruch setzen sollen, dass es intuitiv und leicht zu benutzen ist. Was nützt mir die schönste Ausgabe, wenn ich selbst bei trivialen Dingen massive Probleme habe, stundenlang Doku wälzen muss, um dann doch mal irgendein mystisches Codeschnipsel zu finden. Am Ende der Pipeline soll ein Ferrari rauskommen, aber während der Produktion habe ich nur den Faustkeil benutzt.

Modularität, wiederverwendbarer Code und hierarchische Dateitemplates werden meiner Meinung nach sehr mangelhaft von Lillypond unterstützt. Und dabei wird in der Dokumentation nur allzu oft gelobt, wie toll Lilypond doch für große Partituren ist. Was nützen mir z.B. Tags, wenn sie nur innerhalb von Scores funktionieren. Ebenso irgendwelche Scheme-Musik-Funktionen, die ich übrigens in einem anderen Thread von mir beschreibe. Dort suche ich nach einem umfassenden if-Ansatz, damit man bedingte Kompilierung machen kann. Ich halte das für unumgänglich, wenn man große Projekte machen will.

Ansonsten darf mir irgendwer mal gern erklären, wie ich ein Buch mit 4 Scores zu je 12 Staffs + PianoStaff mit bis zu 3 Voices pro Staff anlege. Ich möchte dieses Buch als Gesamtkunstwerk drucken, dann aber auch gezielt von allen Scores nur die Violinstimme mit anderem Papierformat. Ich werde hier den Teufel tun und auf keinen Fall hier alles in eine Gesamt-Struktur-Datei kippen, um dann die dynamischen Teile von außen per Variablen zu kontrollieren. Das ist reinster Spaghetti-Code, den man nach 2 Tagen nicht mehr versteht. Ich teile meine Dateien hierarchisch auf. Eine book.ly inkludiert die einzelnen scoreXX.ly, diese includieren wiederum die vielen staffXX.ly und diese wiederum die voiceXX.ly. Damit wird der Code innerhalb der Dateien auf ein Minimum reduziert und bleibt auch für Laien wie meinen Geigenlehrer verständlich. Der braucht dann nämlich nur in die Voice-Dateien schauen und seine Noten tippen.

Mir fehlt hier eindeutig ein Präprozessor oder zumindest eine Lilypond-Funktion für einen if-Befehl, damit man bedingte Kompilierung machen kann. Diese Funktion muss dann überall funktionieren, auch außerhalb einer book-Definition. Außerdem wäre es nützlich wenn Lilypond auch mal mit regulären Ausdrücken oder mind. mit Wildcards umgehen kann. Dann könnte man mehrere Dateien per Namensmuster includieren, anstatt jede Staff-Datei oder Voice-Datei einzeln in der übergeordneten Datei. Mit einem Wildcard-Include wäre es für Laien auch einfacher, weil sie dann nur eine voiceXX.ly kopieren müssen und die Nummer XX hinten ändern, fertig. Die müssen dann nicht in die staffXX.ly und dort auch noch den \include Befehl eintippen, da hat die Omi sowieso keine Ahnung von, was sie da tut.

Mir scheint es auch so zu sein, dass man außerhalb von book oder score nicht jedwede Variablendefinition machen kann. Wenn die Variablendefinition dann sowas wie \paper oder \header enthält, scheint er das direkt auszuführen und ihm gefällt der Kontext nicht. Das macht es auch schwer wiederverwendbaren Code zu bauen. Ich möchte eben nicht nur den String "a3" als Variable definieren, sondern gleich den ganzen \paper-Block oder \layout Block, damit ich das Getippe erspare.

Ingesamt kann man sich schon mit viel Schmerzen an den Lilypond-Syntax gewöhnen. Ich frage mich aber dennoch, ob ich nicht wieder beim nächsten trivialen Ding das Handtuch werfe und wochenlang im Internet wühlen muss. Ich möchte wenns geht noch in diesem Leben fertig werden. Ich habe jetzt schon ca. 50 handgeschriebene Notenblätter und mein Geigenlehrer hat noch einen riesigen Schrank voll davon.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Montag, 14. Mai 2018, 23:13
Hallo zusammen,

ein paar Bemerkungen zu einigem aus den letzten beiden posts hier. Ich gehe nur auf ausgewählte Punkte ein, was nicht heißen soll, daß andere nicht kommentierungs- oder diskussionswürdig seien.

Zitat von: rgreeTatsächlich gibt Lilypond viele Kröten zu schlucken, die ja auch teilweise genannt wurden.
Ich würde noch ergänzen,
- dass ich es erstaunlich finde, dass ausgerechnet eine solch skurrile Programmiersprache wie das Lisp-Derivat "Scheme" (ich kenne ungefähr 10 Programmiersprachen ganz gut)
  als Interface-Spache gewählt wurde; sie ist - nach meiner Beobachtung und was hier so im Forum ausgebreitet wird -
  für das Gros der Lilypond-Anwender (insbes. ohne IT-Hintergrund) extrem gegen-intuitiv; was übrigens nach meinem Geschmack auch für viele Scheme-Funktionen gilt;

Interface-Sprache ist ja nicht ganz korrekt. Es ist nicht nur die LilyPond-Erweiterungssprache, sondern die offizielle GNU-Erweiterungssparche.
https://www.gnu.org/software/guile/ (https://www.gnu.org/software/guile/)

Ansonsten bin ich der Ansicht, daß sich Computer-Nutzer eines erweiterbaren Programs ohne jegliche Programmiererfahrung mit jeder Erweiterungs-Sprache schwertun werden. Das ist natürlich nur meine persönliche Ansicht. Aber es ist nicht schwer vorzustellen, daß das Erlernen einer Sprache, welcher auch immer, Zeit und Arbeit erfordert.
Jedoch habe ich die Erfahrung gemacht, daß sich gerade Personen mit Programmiervorkenntnissen, bis hin zu IT-Spezialisten, mit Scheme, genauer Guile, schwer tun. Ich wage die Vermutung, daß die Vorkenntnisse eher im Wege stehen als hilfreich sind.

Ich selbst habe übrigens keinerlei IT-Ausbildung, sondern guile im Selbststudium erlernt, um LilyPond für meine Zwecke zu erweitern.

Zitat von: rgree- dass eigentlich eine vernünftige Preprozessor-Sprache fehlt,
Zitat von: unique75mModularität, wiederverwendbarer Code und hierarchische Dateitemplates werden meiner Meinung nach sehr mangelhaft von Lillypond unterstützt.
Zitat von: unique75mMir fehlt hier eindeutig ein Präprozessor oder zumindest eine Lilypond-Funktion für einen if-Befehl, damit man bedingte Kompilierung machen kann.

LilyPond ist ein open-source Programm. Die meisten features sind implementiert worden, weil jemand sie haben wollte und sich die Mühe gemacht hat entsprechende patches zu erstellen und sich dem review-Prozedere zu stellen (Das gilt auch für viele meiner eigenen patches)

Mit anderen Worten: patches are welcome.

Zitat von: unique75mWas nützt mir die schönste Ausgabe, wenn ich selbst bei trivialen Dingen massive Probleme habe, stundenlang Doku wälzen muss, um dann doch mal irgendein mystisches Codeschnipsel zu finden. Am Ende der Pipeline soll ein Ferrari rauskommen, aber während der Produktion habe ich nur den Faustkeil benutzt.

Solange Du die "trivialen" Dinge nicht benennst, kann niemand etwas dazu sagen ;)
Aber LilyPond ist sehr umfangreich in ihren Möglichkeiten. Zugegebenermaßen dauert es seine Zeit bis man gut damit zurecht kommt.
Es wäre schön gewesen Du hättest den letzten Satz anders fomuliert. Mir persönlich kommt er unangemessen agressiv vor.
Nicht das ich ihm inhaltlich zustimmen würde ...

Zitat von: unique75m
Ansonsten darf mir irgendwer mal gern erklären, wie ich ein Buch mit 4 Scores zu je 12 Staffs + PianoStaff mit bis zu 3 Voices pro Staff anlege. Ich möchte dieses Buch als Gesamtkunstwerk drucken, dann aber auch gezielt von allen Scores nur die Violinstimme mit anderem Papierformat. Ich werde hier den Teufel tun und auf keinen Fall hier alles in eine Gesamt-Struktur-Datei kippen, um dann die dynamischen Teile von außen per Variablen zu kontrollieren. Das ist reinster Spaghetti-Code, den man nach 2 Tagen nicht mehr versteht. Ich teile meine Dateien hierarchisch auf. Eine book.ly inkludiert die einzelnen scoreXX.ly, diese includieren wiederum die vielen staffXX.ly und diese wiederum die voiceXX.ly.

Nun habe ich noch nicht verstanden was Du mit "Gesamt-Struktur-Datei" meinst und deshalb natürlich auch nicht was Dir daran nicht zusagt...

Aber es scheint, daß Dein Wollen und LilyPonds Möglichkeiten nicht zusammenfinden.
Da sehe ich nur ein paar Möglichkeiten:
Ändere Deine Vorstellung wie Du Deinen Plan ausführen willst.
Oder ändere LilyPond (s.o. patches are ...)
Vielleichtgibt es ja auch bereits etwas, an das niemand hier bislang dachte.
Oder jemand entwickelt etwas (s.o. patches ...)
Was mich selbst angeht, so habe ich momentan gleich mehrere Projekte rumzuliegen, deshalb bin ich Deiner Fragestellung bislang nur sehr zeit-limitiert nachgegangen.

Zitat von: unique75mMir scheint es auch so zu sein, dass man außerhalb von book oder score nicht jedwede Variablendefinition machen kann.

Eigentlich wird anders herum ein Schuh draus.
In einem book/score kann man keine Variable definieren.

Gruß,
  Harm


Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Manuela am Dienstag, 15. Mai 2018, 06:24
Ich möchte mich Harms Post anschließen.  :)

Lilypond ist ein geniales Programm, das allerdings einige Einarbeitungszeit benötigt, ich habe mir manch blutige Nase geholt beim Versuch, irgendwas umzusetzen was aus jetziger Sicht völliger Unsinn war. Niemand muss es verwenden, jeder kann und darf, wenn er will  ;)

Aus eigener Erfahrung kann ich sagen, dass Programmierkenntnisse tatsächlich dem Verständnis von Scheme/Guile im Weg stehen.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: unique75m am Dienstag, 15. Mai 2018, 08:18
Lieber Harm,

ich denke meine trivialen Dinge habe ich genannt :-)

Ich benötige einen if-Befehl, der überall funktioniert und nicht nur innerhalb von Kontexten, wo musikalische Definitionen erlaubt sind.

Des Weiteren konnte mir auch bisher niemand erklären, wie man vernünftig ein Buch mit 4 Scores zu je 12 Staffs zu je 3 Voices erstellt , sodaß auch Teilauszüge einzelner Stimmen druckbar sind. Die bisherigen Antworten in den anderen Threads waren nur, bau die gesamte Struktur in eine Datei und eine andere Datei, wo die ganzen Notendefinitionen stehen. Es dürfte klar sein, dass beide Dateien riesengroß und unleserlich werden. Zudem fange ich dann wohl auch an die Strukturdatei jedesmal zu kopieren, um die ungewünschten Scores/Staffs/Voices zu entfernen. Wenn man diesen Strukturcode ebenfalls rauszieht in Variablen, was nach meiner Erfahrung bisher, auch nicht immer funktioniert, dann gewinnt man auch keinen Blumentopf, weil man dann alles inhaltlich zerreißt. So verwaltet man nunmal keine großen Projekte.

Die einzigste Lösung, die ich momentan sehe ist, dass ich mich von dem Gedanken verabschiede ein Buch mit 4 Scores zu machen. Dann baue ich eben jeden Score separat und benutze meine if-equal-Funktion zum bedingten Kompilieren nur innerhalb des score. Nur frage ich mich eben, wo dann der Anspruch von Lilypond bleibt, dass man damit große Partituren machen kann und Einzelauszüge aus den gleichen Quellen, wenn man doch immer ständig nur um die Probleme herum schifft bzw. diese sich zurechtbiegt, bis es irgendwie passt.

Ich sehe mich auch nicht in der Situation, dass ich mich in ein OpenSource-Projekt derart tief einarbeite, damit ich dort irgendwelche Patches am Quellcode vornehmen kann. Dazu fehlt mir schlicht und einfach die Zeit und vor allem die Lust. Dann kann ich mir auch gleich einen eigenen Engraver in meiner Lieblingssprache bauen.

Mag sein das Manuela Recht hat und nach gewisser Einarbeitungszeit die große Erleuchtung kommt. Immerhin habe ich ja schon ein bisschen dazu gelernt. Mein Ziel ist aber eben, dass ich am Ende eine Art Template habe, was leicht lesbar und erweiterbar ist, sodaß man sowas evt. auch einem Geigenlehrer älteren Jahrgangs in die Hand drücken kann.

Vielen Dank für Eure Hilfe soweit :-)

Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Dienstag, 15. Mai 2018, 09:32
Hallo unique,

Zitatich denke meine trivialen Dinge habe ich genannt :-)
Eigentlich nicht.
Ich hab nochmal alle Deine Beiträge gelesen und drei Themen gefunden.
Taktzahlen und tags waren zwei davon. Beide beantwortet und gelöst, imho.

Das dritte ist Dein "if",
Dazu:
ZitatDes Weiteren konnte mir auch bisher niemand erklären, wie man vernünftig ein Buch mit 4 Scores zu je 12 Staffs zu je 3 Voices erstellt , sodaß auch Teilauszüge einzelner Stimmen druckbar sind.
Doch, aber
Zitat
Die bisherigen Antworten in den anderen Threads waren nur, bau die gesamte Struktur in eine Datei und eine andere Datei, wo die ganzen Notendefinitionen stehen.
die Antwort hat Dir nicht gefallen ;)

Es sollte alledings machbar sein eine Funktion zu schreiben die als Eingabe eine Liste von Voices erhält und ein book ausgibt.
Falls ich Zeit finde denk ich mal drüber nach wie das gehen kann und was diese Funktion vielleicht sonst noch braucht. Kann aber ne' Woche dauern...

ZitatIch sehe mich auch nicht in der Situation, dass ich mich in ein OpenSource-Projekt derart tief einarbeite, damit ich dort irgendwelche Patches am Quellcode vornehmen kann. Dazu fehlt mir schlicht und einfach die Zeit und vor allem die Lust. Dann kann ich mir auch gleich einen eigenen Engraver in meiner Lieblingssprache bauen.
Zeitprobleme versteh ich sehr gut.
Das mit der Lust ist natürlich so n' Sache.
Ich hab' auch nicht immer Lust Fragen zu beantworten, kostet ja auch Zeit ;)

Gruß,
  Harm



Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: unique75m am Dienstag, 15. Mai 2018, 13:40
Hallo lieber Harm,

eigentlich sind es nur 2 Beiträge. Einmal ging es um die Taktzahlen, die sind ja nun gelöst. Das zweite ist das Thema, wie man aus einem Quellcode verschiedene Editionen baut. Dort werden auch die Tags erwähnt und auch ein if-Befehl. Das sind nur mögliche Lösungsansätze, um bedingte Kompilierung hinzukriegen. Ob ich die verschiedenen Editionen nun mit Tags, einem if-Befehl oder sonstigem hinkriege, ist mir eigentlich egal, nur es sollte eine generell funktionierende Lösung sein, die auch außerhalb von Score und Book funktioniert. Daran scheitern momentan alle genannten Lösungen.

Ein Vorschlag, der darauf hinausläuft, dass mein Projekt unleserlich und unwartbar wird, ist für mich keine zufriedenstellende Lösung. Wenn man die gesamte Struktur eines Buches mit 4 Scores, 12 Staffs und 3 Voices in einer einzigen Datei ablegt und dann alles mögliche mit Variablen dynamisiert, dann blicke ich da jedenfalls nicht mehr durch und mein Geigenlehrer erst recht nicht. Baue ich ein Projekt modularisiert auf, dann steht in den Dateien nur das notwendige, was da hingehört. Score-Eigenschaften sind in score.ly, Voice-Eigenschaften sind in voice.ly usw.. Die Dinge sind überschaubar kurz und das Zusammengehörige ist auch zusammen und nicht quer verstreut über 100 Variablen.

Bitte spare dir deine kostbare Zeit, eine Funktion zu schreiben, die ein Buch ausgibt. Ich denke das würde nicht meinen Anforderungen entsprechen. Da wüsste ich schon mal garnicht, wie ich mir eine solche Funktion vorstellen soll, wenn man die ganzen \header Variablen einstellen will, einen eigenen \paper-Block usw.. Das artet doch dann in einer Funktion mit 100 Parametern aus  :)

Trotzdem vielen Dank, dass du deine wertvolle Zeit opferst, meine Problemchen anzuschauen  :)
Früher wo ich jung und dynamisch war, hab ich oft einfach drauf los programmiert und nicht über die Zeit nachgedacht. Da hat man dann auch mal Jahre damit verbracht in Assembler hardwarenahe Spiele zu schreiben. Heute bewerte ich eigentlich eher eine Software danach, wieviel Nerven und Lebenszeit mich das kostet :)
Ich glaube das ist wie bei den Autos, manche basteln eben liebend gerne an jeder Schraube herum, machen den Ölwechsel selbst und andere wollen das Ding nur fahren. Ich gehöre mittlerweile zu der zweiten Gattung und möchte ohne viel Widerstand mein Ziel erreichen :-)
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Dienstag, 15. Mai 2018, 21:26
Hallo unique,

ZitatBitte spare dir deine kostbare Zeit, eine Funktion zu schreiben, die ein Buch ausgibt. Ich denke das würde nicht meinen Anforderungen entsprechen. Da wüsste ich schon mal garnicht, wie ich mir eine solche Funktion vorstellen soll, wenn man die ganzen \header Variablen einstellen will, einen eigenen \paper-Block usw.. Das artet doch dann in einer Funktion mit 100 Parametern aus

Einerseits bezweifel ich, daß eine solche Funktion wirklich so chaotisch werden würde, andrerseits kann man das nicht wirklich wissen bevor man nicht ein paar Schritte in diese Richtung gegangen ist.

Ich setz mich wahrscheinlich mal dran, aber vor Ablauf dieser Woche wird es nichts und danach auch nur mit nicht höchster Priorität. ;)
(Im Moment beschäftige ich mich hauptsächlich damit ein neues grob zu erschaffen, welches nicht so will wie ich möchte, grrrrrr...)

Aber der Problemkreis taucht immer mal wieder auf. Ich hatte ja auch schon auf Jan-Peters Herangehensweise verwiesen. das Thema weiter auszuloten kann eigentlich nicht sinnlos sein ...


Gruß,
  Harm

Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Mittwoch, 16. Mai 2018, 10:07
Zitat von: harm6 am Montag, 14. Mai 2018, 23:13

Jedoch habe ich die Erfahrung gemacht, daß sich gerade Personen mit Programmiervorkenntnissen, bis hin zu IT-Spezialisten, mit Scheme, genauer Guile, schwer tun. Ich wage die Vermutung, daß die Vorkenntnisse eher im Wege stehen als hilfreich sind.

Weil es bestimmte Konzepte und Wege gibt, wie so etwas aufgebaut ist. Wenn  diesen Konzepten nicht ensprochen wird, macht man es den Leuten schwerer.

Zitat von: harm6 am Montag, 14. Mai 2018, 23:13

Solange Du die "trivialen" Dinge nicht benennst, kann niemand etwas dazu sagen
Damit kann ich dienen. Bisher habe ich es in jeder Computersprache selbstständig geschafft, herauszufinden wie man Strings "addiert", sodass kein Leerzeichen zwischen den Strings ist.

Der Grund ist einfach, weil so etwas bei den mir genutzten Sprachen zu den Grundübungen bei den entsprechenden Einführungen gehört. Bei Lilypond musste ich dann hier fragen.

Einerseits weil ich nichts gefunden habe. Andererseits weil z.B. nicht klar ist, wenn ich mir eine Funktion schreibe, wessen Baustelle ist das denn nun. Lilypondsyntax oder Schemesyntax. Bei Scheme habe ich nichts gefunden. Die Antwort hier hat mich auf Lilypondsyntax verwiesen.

Und so etwas ist einfach unpraktisch.

Seit einer Woche schreibe ich das PHP meiner Wordpressinstallation wegen DSGVO um. Ich habe noch keine einzige Forenanfrage gestellt. Bitte zähle mal die Anfragen die ich in dieser Zeit hier gestellt habe.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Mittwoch, 16. Mai 2018, 12:24
Zitat von: Hilflos-im-CodeWeil es bestimmte Konzepte und Wege gibt, wie so etwas aufgebaut ist. Wenn  diesen Konzepten nicht ensprochen wird, macht man es den Leuten schwerer.
Das kann ich nicht wirklich beurteilen, meine Kenntnisse anderer Sprachen als guile sind zu rudimentär.

ZitatDamit kann ich dienen. Bisher habe ich es in jeder Computersprache selbstständig geschafft, herauszufinden wie man Strings "addiert", sodass kein Leerzeichen zwischen den Strings ist.

Der Grund ist einfach, weil so etwas bei den mir genutzten Sprachen zu den Grundübungen bei den entsprechenden Einführungen gehört. Bei Lilypond musste ich dann hier fragen.

Einerseits weil ich nichts gefunden habe. Andererseits weil z.B. nicht klar ist, wenn ich mir eine Funktion schreibe, wessen Baustelle ist das denn nun. Lilypondsyntax oder Schemesyntax. Bei Scheme habe ich nichts gefunden. Die Antwort hier hat mich auf Lilypondsyntax verwiesen.

LilyPondsyntax und Schemesyntax sind sehr eng verflochten.
In den entwsprechenden C++-files sind auch diverse Prozeduren definiert, die wir in scheme-Syntax innerhalb Lilypond anwenden können. Hinzu kommen natürlich die ganzen in nativem scheme definierten Sachen in all den ~.scm-files.

Bei Deinem Beispiel mit den strings ist mir die Problematik nicht klar geworden.
strings zusammenzufügen ist keine LilyPond-Syntax sondern natives guile. Das guile-manual offeriert verschiedene Möglichkeiten, je nachdem wie man die zusammenzufügenden strings "anliefert" bzw was man sonst vielleicht noch machen will, z.B.:
(string-append "a" "b" "c")
(string-concatenate '("a" "b" "c"))
(format #f "~a~a~a" "a" "b" "c")

Beim schreiben von Definitionen, Prozeduren, Funktionen im eigenen ~.ly-file kann man scheme-syntax in LilyPond einbetten. Alles was mit einem #-Zeichen in LilyPond beginnt wird an den scheme-interpreter weitergereicht, der auch Zugriff auf die in ~.cc und ~.scm-files definierten Dinge hat, und dort bearbeitet.
Man kann darüberhinaus auch wieder LilyPond-syntax in scheme einbetten. Alles was zwischen #{  #} steht, ist LilyPond.

Zitat von: Hilflos-im-CodeUnd so etwas ist einfach unpraktisch.
Da bin ich konträrer Meinung.
Ich will gerne zugestehen, daß diese Gemengelage Einarbeitungszeit erfordert. Jedoch ist die LilyPond-Syntax keine Programmiersprache, es ist eine Eingabesyntax. Will man diese erweitern, so muß man in die Sprache die für Erweiterungen vorgesehen ist wechseln können und zurück. Das kann man mittlerweile annähernd reibungslos.

Wie sonst?


Gruß,
  Harm
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Mittwoch, 16. Mai 2018, 12:42
Noch eine Bemerkung zu:

Zitat von: rgree am Montag, 14. Mai 2018, 12:58
  Beispiel \partial
    dass z.B. \partial 4. dasselbe ist wie \partial 8*3,
    aber das so etwas wie \partial 3/8 (für mich das Intuitivste)
    nicht unterstützt wird, obwohl der \time-Befehl ja diese Art Parameter akzeptiert;
    dass dann in diesem Zusammenhang die Regel gilt, das \partial innerhalb eines Musikstücks nicht nochmal kommen darf,
    obwohl es klaglos (unter Absonderung eines Warning) funktioniert, und man stattdessen so etwas schreiben muss wie
    \set Timing.measurePosition = #(ly:make-moment -1/8) % = \partial 4. : schon wieder eine andere Art zu parametrieren;
    mir ist als IT-ler natürlich klar, dass das alles wohldefinierte Funktionen sind, aber wer kann sie ohne Doku-Studium bewältigen,
    wo doch so einfach und klar ist was man will   

\partial verlangt eine duration als Eingabe.
4. ist genauso lang wie 8*3. Möglich wäre aber auch 1*3/8 :)
Das \partial innerhalb eines bereits begonnenen Stückes nicht mehr klaglos funktioniert hat sich im Laufe der Versionen auch schon mal geändert.
In 2.19.81 funktioniert folgender Code ohne Warnung:
{
  \partial 1*3/8
  c'4.
  R1
  c'1
  \partial 8
  c'8
  R1
}


Das die Eingabe für \time anders ist, sollte aber nicht überraschen. Wie wir alle wissen ist ein 2/2 etwas anderes als ein 4/4-Takt bei gleicher Dauer. In neueren Versionen akzeptiert \time auch ein optionales Argument.
\partial und \time setzen halt völlig unterschiedliche Dinge. Die Dauer für partial ist wirklich eine Dauer, z.B. für eine 8-tel (ly:make-duration 3).
Bei \time kommt es aber darauf an was im Nenner un was im Zähler des Bruches steht.
Z.B für die automatische Bebalkung



Gruß,
  Harm
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Mittwoch, 16. Mai 2018, 13:19
Zitat von: harm6 am Mittwoch, 16. Mai 2018, 12:24

Zitat von: Hilflos-im-CodeUnd so etwas ist einfach unpraktisch.
Da bin ich konträrer Meinung.
Ich will gerne zugestehen, daß diese Gemengelage Einarbeitungszeit erfordert. Jedoch ist die LilyPond-Syntax keine Programmiersprache, es ist eine Eingabesyntax. Will man diese erweitern, so muß man in die Sprache die für Erweiterungen vorgesehen ist wechseln können und zurück. Das kann man mittlerweile annähernd reibungslos.

Harm, es gibt ein kleines Problem bei deiner Äußerung, einerseits weißt Du nicht, wie es bei anderen Computersprachen aussieht, aber urteilst doch darüber, was praktisch ist, obwohl dir der Vergleich fehlt. Wenn andere Sachen praktischer werden, dann sind praktische Sachen irgendwann unpraktisch. Die Bewertung praktisch ist auch eine vergleichende Bewertung.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Mittwoch, 16. Mai 2018, 22:34
Hallo Hilflos-im-Code,

im Bewußtsein meiner geringen Kenntnisse in Bezug auf andere erweitere Programme (und deren Erweiterungssprachen) hatte ich jedoch mit

Zitat von: HarmWie sonst?

geschlossen.

Das ist bislang unbeantwortet.


Gruß,
  Harm
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: Hilflos-im-Code am Donnerstag, 17. Mai 2018, 12:27
GEM =
#(define-scheme-function
  (parser location mrkp tr-val )
  (markup? pair?)
  #{
    -\tweak extra-offset #tr-val
    -\markup {

      \magnify #1
      \bold
      \with-color #darkmagenta
      %  \center-align

      %% other syntax-possibility:
      %\override #'(font-name . ,font-name-string)

      \concat \fontsize #-3 { $mrkp  g }



    }
  #})


Es geht um das \contact, deine anderen Sachen habe ich gesucht, auch gefunden, bin aber nicht weitergekommen.
Titel: Antw:Taktzahlen für alle Instrumente
Beitrag von: harm6 am Freitag, 18. Mai 2018, 01:20
Zitat von: Hilflos-im-Code
<code-skipped>
Es geht um das \contact, deine anderen Sachen habe ich gesucht, auch gefunden, bin aber nicht weitergekommen.

Bitte erwähne, zitiere oder verlinke worauf Du Dich beziehst.

Ich vermute es geht ums Thema "strings addieren".

Falls das richtig ist, so kommt es in der GEM-definition nicht vor.
In der Zeile
\concat \fontsize #-3 { $mrkp  g }
wird aus `$mrkp' (welches ein beliebiges markup ist und daher auch ein \draw-line ... sein könnte) und `g' welches zumindest intern als string gewertet wird ein Ausdruck erstellt.
Falls `$mrkp' wirklich ein beliebges markuo ist so ist /concat das einzige Mittel.
Solltest Du Dich auf Text für `$mrkp' beschränken wollen so ändere das Funktionsprädikat von markup? auf string? dann würden auch die nativen guile proceduren greifen können. Führt dann zu:


GEM =
#(define-scheme-function
  (parser location strg tr-val )
  (string? pair?)
  #{
    -\tweak extra-offset #tr-val
    -\markup {

      \magnify #1
      \bold
      \with-color #darkmagenta
      %  \center-align

      %% other syntax-possibility:
      %\override #'(font-name . ,font-name-string)
      #(string-append strg  "g")
    }
  #})
 
{
  c'1-\GEM "xy" #'(0 . 0)
}


Gruß,
  Harm