Autor Thema: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)  (Gelesen 16210 mal)

Be-3

  • Gast
LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« am: Samstag, 29. September 2012, 18:20 »
Hallo zusammen,

angeregt durch eine Anfrage von Acamat (https://archiv.lilypondforum.de/index.php?topic=1194.0) habe ich mich auf meinen alten Wunsch besonnen, mit Lilypond auch eine Art "Jazz-Stil" setzen zu können.
Hier sind nun die ersten Ergebnisse:

Lilypond-Version 2.16
Weil die Fähnchen (Flags) nun selbständig sind (sich vom Stem getrennt haben), benötigt LilyJAZZ eine Version > 2.14.

Schrift
Im Gegensatz zu einfach auszutauschenden Text-Schriften stammen die Notensymbole bei Lilypond aus einer zentralen Systemschrift. Will man also Notenköpfe, Fähnchen usw. durch nicht in Feta/Emmentaler enthaltene Zeichen ersetzen, muß man ziemlich tief in die Trickkiste greifen.
Am einfachsten wäre es, wenn die speziellen Jazz-Zeichen ebenso wie beispielsweise die Mensuralnotation in Emmentaler aufgenommen wären. Dies ist eventuell ein Fernziel. Momentan begnüge ich mich damit, die Zeichen aus einer "externen" Schrift zu benutzen.
Um von kommerziellen Schriften unabhängig zu sein, habe ich mit font forge die Schrift "LilyJAZZ" aus der Taufe gehoben, die als OTF (Open Type) an dieses Posting angehängt ist.

LilyJAZZ enthält eine gesunde Basis an Zeichen (Anhang: LilyJAZZ-glyphlist-v01.pdf), die (zur besseren Orientierung) an den Unicode-Plätzen liegen, an denen auch die ensprechenden Feta-Zeichen in Emmentaler stehen. Sie heißen auch so, nur, daß noch ein "jazz" hinten angehängt ist.
Pate gestanden haben (ganz offensichlicht) die Sigler-Jazz-Fonts (ich habe mich an Frank Sikoras "Neuer Jazz-Harmonielehre" orientiert - bis auf die dort allgemein nach meinem Geschmack viiieel zu dünnen Linien).
Die LilyJAZZ-Zeichen sind alle aus Grafiken vektorisiert und bedürfen sicherlich noch der Überarbeitung - aber als Ausgangsbasis reichen sie allemal.

Die Zeiten, in denen ich mich mit Metafont beschäftigt habe, liegen erschreckend lange zurück und momentan liegt meine Priorität auch nicht unbedingt auf der Schrift selbst, sondern eher ihrer Einbindung in Lilypond.
Außerdem ist eine solche "Handschrift" nicht auf hunderprozentige Exaktheit angewiesen.

Eine passende Text-Schrift (nicht einmal für Akkord-Symbole) gibt es noch nicht, sie ist aber in Planung. Zunächst einmal soll es wirklich nur um die Noten gehen.

Generelles Prinzip
Das Prinzip besteht darin, an allen nötigen Stellen - und das sind viele - die Stencils auszutauschen.

Zeichenzugriff
Genau wie in Lilypond werden die Zeichen über ihren Namen, nicht ihre (keinesfalls festgelegte Unicode-Nummer) angesprochen.
Als "Ersatz" für den \musicglyph-Befehl gibt es beispielsweise den \jazzglyph-Befehl, der das ensprechende LilyJAZZ-Zeichen als Markup liefert:
Beispiel:
\mark \markup { \musicglyph "scripts.segno" } }
wird zu
\mark \markup { \jazzglyph "scripts.segnojazz" } }

Die "jazz"-Endung wäre eigentlich unnötig, ich fand aber die Abgrenzung zu den Originalnamen sinnvoll - vor allem in Hinblick auf eine eventuell spätere Eingliderung in Emmentaler (man kann ja nie wissen...)

Nun aber genug fürs erste: "der Worte sind genug gewechselt, laßt mich auch endlich Taten sehn":

\version "2.16.0"
\include "LilyJAZZ.ily"

#(set-global-staff-size 23)

\new Staff \relative c'' {
   \jazzOn
   \key bes \major
   \time 4/4
    r8 f,\fp g[ f] c'\accent c4.\tenuto |
    r8 g\p a[ g] d'2\trill |
    \mark \markup { \small \jazzglyph #"scripts.segnojazz" }
    r8 c\mp d[ c] f f4 e8 |
    g8\staccato f\staccato d\staccato a ~ a as \acciaccatura as8 g4\mf |
    r8 f\f g f\marcato c'\marcato  c4. |
    r8 g\sfpp a[ g] d' d4 c8 |
    a1\fff ~ | a2\fermata r \bar "||"
}
Die Schriftart LilyJAZZ.otf und die benötigte Include-Datei LilyJAZZ.ily befinden sich im Anhang.

Es gibt noch viele Probleme und unfertige/unvollkommene Lösungsansätze, aber immerhin: ein Anfang ist gemacht.
Zu Einzel- und Besonderheiten sollten wir vielleicht dezidierte Threads eröffnen. Diese Mammut-Baustelle ist zu vielschichtig, um in einem einzigen Faden sinnvoll beackert zu werden.
Meine Güte, was hab' ich da angefangen...  :o

Viele Grüße
Torsten

kilgore

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #1 am: Samstag, 29. September 2012, 18:37 »
 :o

Echt super! Ich freue mich damit bald rumzuspielen! Toll gemacht Torsten!

Gruß
kil

harm6

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #2 am: Sonntag, 30. September 2012, 00:23 »
Hallo Torsten,

wow!!

Zitat
Meine Güte, was hab' ich da angefangen...  :o

Grins!
Ein Riesenprojekt eben. :D

Zitat
Zu Einzel- und Besonderheiten sollten wir vielleicht dezidierte Threads eröffnen. Diese Mammut-Baustelle ist zu vielschichtig, um in einem einzigen Faden sinnvoll beackert zu werden.

Ein paar Sachen kann man direkt erkennen:
-Takt-Angabe klappt nur numerisch, statt C-Zeichen
-Fonts für Texte, Akkordnamen etc.
-shortcuts für Artikulationen
-Bracket-BarLines (btw, der patch macht Fortschritte)
ist, was ich so direkt sehe.
Falls Du einzelne Probleme in gesonderten Threads erörtern magst werde ich mithelfen so gut ich kann.

Ich habe mir mal LilyJAZZ-glyphlist-v01.pdf angesehen.
(Muß eine Heidenarbeit gewesen sein.)

Nun habe ich von Metafont keine Ahnung, aber Du hast ja dankenswerter Weise den LilyPond-default und Deine Arbeit einander gegenübergestellt.
Dabei ist mir aufgefallen, daß Du die Bounding Box gelegentlich sehr stark überschreitest.

Der LilyPond-default für z.B. "scripts.trill" und das forte-Zeichen macht das auch, aber gerade bei diesen Zeichen habe ich die Erfahrung gemacht, daß sie in dem Bereich wo die Box überschritten wird kollisionsanfällig sind, je nachdem wie man diese Zeichen weiterverarbeitet.
Wenn ich hier aufgrung mangelnder Erfahrung mit Metafont Blödsinn schreibe, ignorier es einfach. Aber es stellt sich mir die Frage, ob die Kollisionen nicht vermieden werden könnten, wenn man die Bounding Box einhielte.

Schriftarten:
Vielleicht kennst Du ja folgenden Thread, insbesondere:
https://archiv.lilypondforum.de/index.php?topic=167.msg867#msg867
Dem link dort folgend habe ich ein paar Schriftarten runtergeladen und kann damit das png aus dem Anhang erzeugen.
Die Schriften sind nicht perfekt, der Autor schreibt ja auch, daß er die Entwicklung eingestellt hat.
Aber vielleicht trotzdem interessant.

Der Code dafür:
\markup \fill-line { \null \fontsize #6 \override #'(font-name . "Real Book Title") "LilyJazz-Test" \null }
\markup \fill-line { \null \fontsize #6 \override #'(font-name . "Colorado Book Text")"LilyJazz-Test" \null }


Soweit erstmal mit ehrfürchtigem Gruß :)
  Harm

Be-3

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #3 am: Sonntag, 30. September 2012, 10:10 »
Hallo Harm,

die von Dir genannten Punkte sind auch (unter anderem) die offenen/verbesserungswürdigen Stellen.
Ich hatte mir nur gestern gedacht: "Was soll's - jetzt ist mal Zeit für einen Redaktionsschluß für eine Alpha-alpha-Vorab-Version". Sinn und Zweck war, überhaupt irgendeine Diskussionsgrundlage zu schaffen, und bei den vielen zu beachtenden Dingen sind einige unfertig oder fehlen gar (noch) komplett.

Ein paar Sachen kann man direkt erkennen:
-Takt-Angabe klappt nur numerisch, statt C-Zeichen
Die numerischen Angaben funktionieren, weil die Ziffern auch im "Original-Lilypond" auf ihren Standard-Ascii-Plätzen liegen und direkt (nicht über ihren Postscript-Namen) angesprochen werden. Daher genügte es, einfach Fontname und -größe zu ändern:
  \override Staff.TimeSignature #'font-name = #"LilyJAZZ"
  \override Staff.TimeSignature #'font-size = #5
Für die nicht-numerischen (also das Common-Time-C und das Cut-Time-C) müßte man noch manuell den Stencil ersetzen (die Zeichen gibt es schon als "timesig.C44jazz" und "timesig.C22jazz").
Ich konnte mich nur noch nicht zu einer Entscheidung durchringen, wie genau das abgebildet werden soll. Am liebsten wäre mir ja, den \time-Befehl zu ersetzen.

-Fonts für Texte, Akkordnamen etc.
Ja, die habe ich bewußt noch hinten angestellt, weil sie ja kein prinzipielles Problem darstellen (außer vielleicht die Besonderheiten bzw. Lücken im "Ignatzek": bei den Feinheiten stecken dann noch einige Teufel in einigen Details...)

-shortcuts für Artikulationen
Du glaubst nicht, wie es mich genervt hat, im Vorab-Beispiel immer "\staccato" usw. schreiben zu müssen. Aber der Versuch, die Shortcuts so einfach zuzuweisen (à la "slashHat = "marcato") führte zu Fehlern wegen unbekannter Richtung (direction). Baustelle!

-Bracket-BarLines (btw, der patch macht Fortschritte)
Schön, daß der Patch Fortschritte macht. Bei mir auch noch in der Rubrik "Mut zur Lücke", gepaart mit der mathematischen Denkweise "das Problem ist lösbar". :)

Dabei ist mir aufgefallen, daß Du die Bounding Box gelegentlich sehr stark überschreitest.
Die Schrift hat übrigens Metafont nie gesehen, sondern stammt direkt aus font forge.
Bei den Bounding Boxes habe ich mich einerseits ursprünglich an den Original-Feta-Werten orientiert, andererseits experimentell festgestellt, daß sie manchmal praktisch überhaupt keine Auswirkungen hat (Fähnchen sind ohnehin noch ein Thema). Andererseits war es erst einmal bequem, z. B. bei den Schlüsseln die Box so weit nach rechts zu erweitern, daß sich ohne große Verschiebereien ein vernünftiger Abstand zur nachfolgenden Key- oder Time-Signature oder ergibt.  :-[

Übrigens: für den \clef-Befehl gibt es auch noch keine vorzeigbare Lösung, da wird erst einmal ganz dumm der Stencil auf den Violinschlüssel gesetzt. Bei "\clef bass" bekommt man dann einen Violin-F-Schlüssel, hüstel  ;D

Der LilyPond-default für z.B. "scripts.trill" und das forte-Zeichen macht das auch, aber gerade bei diesen Zeichen habe ich die Erfahrung gemacht, daß sie in dem Bereich wo die Box überschritten wird kollisionsanfällig sind, je nachdem wie man diese Zeichen weiterverarbeitet.
Das klassische Forte-Zeichen hängt deshalb so aus seiner Box heraus, damit es nicht zu weit von evtl. benachbarten Zeichen steht (bei mf usw.). Das war im Bleisatz auch schon so. Zumindest brechen heute die überstehenden Teile nicht mehr ab...

Wenn ich hier aufgrung mangelnder Erfahrung mit Metafont Blödsinn schreibe, ignorier es einfach. Aber es stellt sich mir die Frage, ob die Kollisionen nicht vermieden werden könnten, wenn man die Bounding Box einhielte.
Bei den "script.*"-Zeichen stehen z. B. auch die Fetas zentriert und ich habe (bis auf Flüchtigkeitsfehler), die Left Boundary entsprechend gesetzt, was aber in der Liste nicht sichtbar wird.
Wie dem auch sei - die blaue Grundlinie und die rote Box sind auch genau dazu gedacht, die Gründe für eventuelle Probleme schneller zu erkennen. Eins ist sicher - die Schrift ist auf jeden Fall noch verbesserungswürdig.

Schriftarten:
Vielleicht kennst Du ja folgenden Thread, insbesondere:
https://archiv.lilypondforum.de/index.php?topic=167.msg867#msg867
[...]
Mit dem Gedanken habe ich auch schon gespielt. Vielleicht wäre es schön, wenn man auch verschiedene Akkord- und Titel-Stile hätte. In Planung ist jedenfalls auch eine (ebenfalls an die Sigler-Fonts) angelehnte (ähem...) Text- und Chord-Schrift, weil sie einfach sehr schön zu den Jazz-Noten paßt.

Ich habe gerade das Real Book (Hal Leonard Corporation) Volume I bis III, überflüssigerweise gleichzeitig in C-, Bb- und Eb-Ausgabe vor mir liegen :)

Viele Grüße
Torsten

Acamat

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #4 am: Sonntag, 30. September 2012, 12:51 »
Hallo Torsten,

vorab erst einmal ein riesen.dickes.mega.fettes Lob an Dich! Beim Lesen deines Beitrags blieb mir zunächst die Spucke weg, dann bekam ich keine Luft mehr und schließlich fand ich mich auf dem Boden sitzend wieder. :)

Im Ernst: Mit meinem Beitrag ahnte ich schon, dass ich da ein großes Fass aufmache; was mir allerdings nicht klar war, dass es dem Umfang des "Dürkheimer Riesenfass" ähneln sollte (für alle, denen die Pfalz eher unbekannt ist: http://de.wikipedia.org/wiki/D%C3%BCrkheimer_Riesenfass).

In diesen Tagen jährt sich mein Umstieg auf Ubuntu und damit die Beschäftigung mit der Linux-Komandozeile und deren Möglichkeiten. Ungefähr neun Monate arbeite ich mit Lilypond, wie auch PostScript. In dieser Zeit habe ich viel gelernt; vorallem, welches Potential in diesen Werkzeugen steckt und dass die bisher von mir erkundeten Landschaften im Verhältnis zu der Gesamtfläche des unbekannten Kontinents bestenfalls marginal sind.

Ich möchte gerne meine Hilfe anbieten. Als Anwendungsentwickler darf ich mich durchaus als profunden Kenner von C/C++, VB und C# wähnen; einigen Skriptsprachen bin ich hier und da auch schon begegnet. Allerdings ist LISP für mich absolutes Neuland. Ich ahne zwar, was in "LilyJAZZ.ily" passiert (und an einigen Stellen meine ich sogar "raw ps" zu erkennen), das reicht für eine wirksame Unterstützung wohl kaum aus. Wie kann also helfen; die ps-Daten der einzelnen Glyphen extrahieren? ;)

Klar, ist das nicht legal, aber ich finde, dass jemand, der dieses Design _produktiv_ einsetzen will, durchaus bereit sein sollte diese $59.95 USD zu berappen; genauso wie ich dieses Jahr anstatt für Wikipedia diesmal für Lilypond spenden werde. Bis dahin kann man ja die Glyphen - mit absichtlichen Qualtitätminderungen - (sagen wir mal) nachempfinden.

--
LG,
Acamat

harm6

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #5 am: Sonntag, 30. September 2012, 15:05 »
Hallo Acamat,

Zitat
genauso wie ich dieses Jahr anstatt für Wikipedia diesmal für Lilypond spenden werde.

Ich habe das zum Anlass genommen einen Artikel über David Kastrup und Sponsoring zu schreiben.
https://archiv.lilypondforum.de/index.php?topic=1222.0
Es wäre große Klasse, wenn Du Dich dazu entschließen könntest da mitzumachen.

Gruß,
  Harm

harm6

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #6 am: Sonntag, 30. September 2012, 18:59 »
Hallo Torsten,

ich hatte David Kastrup wegen anderer Dinge privat kontaktiert und dabei Deine Arbeit erwähnt.

Er gab den Rat, daß Du Dir mal das "Gonville"-projekt anschauen solltest.
http://lilypond.org/doc/v2.16/Documentation/notation-big-page#replacing-the-notation-font
Direkter link:
http://www.chiark.greenend.org.uk/~sgtatham/gonville/

Aber vielleicht kennst Du es ja schon.


Gruß,
  Harm

harm6

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #7 am: Donnerstag, 7. März 2013, 11:59 »
Hallo Torsten,

es gibt auf der internationalen Seite einen aktuellen Thread zum Thema.
http://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00277.html

Ich habe mich nicht berechtigt gefühlt Deinen Code, der hier bei uns ja nur als Anhang einsehbar ist, zu posten und habe mich auf das resultierende Bild beschränkt.

Vielleicht magst Du ja selbst dort posten.
Außerdem habe ich in Erinnerung, daß Du irgendwo geschrieben hattest eine neuere Version entwickelt zu haben?

Viele Grüße,
  Harm

Be-3

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #8 am: Donnerstag, 7. März 2013, 14:47 »
Hallo Harm,

danke für die Info!
Ja, es gibt eine "neue Version" bzw. Weiterentwicklung.
Abgesehen von den Punkten, die Du bereits erwähnt hast, gibt es auch noch andere Dinge, die mittlerweile hervorragend funktionieren. Einiges ist aber noch Baustelle und "man" kommt einfach nicht dazu, das alles und noch viele ausstehende Kleinigkeiten ordentlich aufzuarbeiten...

Beispielsweise die Ganz- und Mehrtaktpausen sind noch offen, wir haben ja beide kürzlich gesehen, wie schlecht man den Stencil bzw. die Zeichenauswahl beeinflussen kann. Momentan wird's wohl auf eine "Markup-Lösung" hinauslaufen, wie Du es ja auch schon gezeigt hast.
Oder: Haltebögen mit und ohne Vorzeichen nach Zeilenumbruch hapern noch etwas.

Schüssel, Tonarten und Time Signatures oder auch Accidental "funktionieren" jetzt wie gewünscht, Deine Idee mit den pure/unpure-Werten hat sich als Allheilmittel erwiesen.

Aber der Noten-Font ist verbessert, es gibt eine Text-Schrift incl. Akkord-Schrift.
Da bin ich noch am Überlegen, ob ich (wie bei Finale oder Sibelius) teilweise fertige "Erweiterungen" mit Klammern und Anordnung als eigene Zeichen anlegen soll, oder à la Ignazek aus Einzelteilen zusammensetzen soll...

Viele Grüße
Torsten

Als Anhang ein paar Entchen :)

harm6

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #9 am: Donnerstag, 7. März 2013, 22:28 »
Hallo Torsten,

ich war und bin immer noch begeistert von Deinem ersten post, wunderbar wenn jetzt noch mehr klappt!!

Wie Du weiter vorgehen willst weiß ich nicht, es wäre jedoch schon, wenn Du mal im o.a thread kurz antworten könntest. Deine Arbeit, von der ich nur das erste Bild gepostet hatte, scheint dort ebenfalls auf reges Interesse und große Begeisterung zu stoßen.

Zitat
die Ganz- und Mehrtaktpausen sind noch offen, wir haben ja beide kürzlich gesehen, wie schlecht man den Stencil bzw. die Zeichenauswahl beeinflussen kann.
Ich bin mit dem direkten 'stencil-override fast am Ziel.
Nunja, knapp vorbei ist auch daneben, aber sobald ich eine wirklich akkurate Lösung habe poste ich sie.

Zitat
Deine Idee mit den pure/unpure-Werten hat sich als Allheilmittel erwiesen
Ich hatte diese Idee?
Kann mich nicht erinnern ...
:)

Viel Erfolg weiterhin!!


Gruß,
  Harm
« Letzte Änderung: Donnerstag, 7. März 2013, 22:39 von harm6 »

Be-3

  • Gast
Re: LilyJAZZ: eine Jazz-Schrift für Lilypond (1)
« Antwort #10 am: Freitag, 8. März 2013, 01:49 »
Wie Du weiter vorgehen willst weiß ich nicht, es wäre jedoch schon, wenn Du mal im o.a thread kurz antworten könntest. Deine Arbeit, von der ich nur das erste Bild gepostet hatte, scheint dort ebenfalls auf reges Interesse und große Begeisterung zu stoßen.

Ja, ich werde morgen dort mal etwas zum Thema schreiben.
Schön! Eigentlich war ja meine Intention, mit diesem Experiment eine Diskussionsgrundlage zu schaffen, weil man sonst immer nur hörte: "Dafür ist Lilypond ja nicht gedacht", "es gibt Wichtigeres" usw.
Sieht tatsächlich so aus, als gäbe es berechtigte Hoffnung, daß Lilypond sich in puncto Notenfont ein wenig öffnet. :)
Wenn man nur mal sieht, daß es tatsächlich möglich ist, brauchbare Jazz-Ergebnisse zu erzielen...


Zitat
Deine Idee mit den pure/unpure-Werten hat sich als Allheilmittel erwiesen
Ich hatte diese Idee?
Kann mich nicht erinnern ...
:)

Doch, doch! Ich hatte nur in einem Nicht-Jazz-Kontext nachgefragt, weil es sich eigentlich um ein allgemeines Problem beim Stencil-Ersetzen handelt. Es ging da um auf den ersten (und auch zweiten) Blick unerklärliche Phänomene mit "Custom" Notenköpfen und Versetzungszeichen.

Viele Grüße
Torsten