Deutschsprachiges LilyPond-Forum

Spezielle Notation => Instrumentenspezifisch => Akkordeon => Thema gestartet von: juerg5524 am Samstag, 23. Januar 2021, 14:40

Titel: LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Samstag, 23. Januar 2021, 14:40
Hallo zusammen

Für einfache Stücke, wie z.B. den Knoedldrahner

https://www.volksmusik.cc/volkstanz/noten/images/Knoedldrahner.mid

kann mit meinem Programm - und mit Hilfe von LilyPond - einfach Griffschrift für Schwyzer Örgeli generieren. Mein Programm, der MidiSequenzer, ist in

http://juerg5524.ch/temp/midi-sequenzer.zip

enthalten. Vor dem Einlesen des Knoedeldrahners sollte

"Transpose" auf minus 4 und "SmallestNote" auf 16th gesetzt werden. Danach einlesen ("Choose mid-File).
Mit "Ticks per Quarter Note" gleich 240 wird das Stück am Raster angepasst.

Mit dem Button "Save for LilyPond" wird Knoedldrahmer.ly erzeugt. (Stand Anhang)

Davor ist es aber ratsam, noch einige Anpassungen vorzunehmen, wie z.B. die Balg Situation (stossen/ziehen):
Über Noten (Rechtecke) mit rechter Maustaste ziehen. Mit 'p' zwischen ziehen und stossen umschalten. 'F' schaltet zwischen den doppelten Belegungen hin und her.

Zwischenstand mit "Save Midi Partitur" abspeichern wäre auch nicht schlecht. Die Korrekturen werden ebenfalls mitgespeichert (ausser dem Wert von "Smallest Note").

In der Datei  Sequenzer-Doku.txt gibt es weitere nützliche Hinweise.

Viel Spass
Jürg

Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Samstag, 23. Januar 2021, 14:42
Hier noch die pdf-Datei
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Montag, 25. Januar 2021, 11:10
Kann mir jemand einen Tipp geben, wie ich die Bass-Notation und eventuell auch die Balg-Situation einbringen kann? Ein Beispiel würde mir vermutlich weiterhelfen.

Danke und Gruss
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: harm6 am Dienstag, 26. Januar 2021, 11:00
Hallo Jürg,

ich antworte mal, obwohl ich nichts substantielles zu sagen habe, aber es soll nicht so wirken als würdest Du ignoriert werden...

Du scheinst Dir ne Menge Arbeit gemacht zu haben.
Allerdings ist mir das Instrument absolut fremd. Auch scheint das Programm für Windows geschrieben zu sein, als Linux-Nutzer bin ich dann nicht in der Lage es zu verwenden.

Hoffentlich kann noch jemand anderer etwas mehr dazu sagen.


Viele Grüße,
  Hrm
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Dienstag, 26. Januar 2021, 11:54
Hallo Harm

Das Programm kann unter Linux mit "Wine" verwendet werden. Ich würde es auch gerne für Steirische Harmonika erweitern. Dann bräuchte ich aber Unterstützung (Midi-Aufnahmen  und Tester).

Zu Beginn suchte ich eine Lösung, um aus Midi-Live-Aufnahmen möglichst automatisiert Griffschrift zu produzieren. Das klappte überhaupt nicht! Das war der Anfang des Sequenzers. Damit kann man nun Noten der Aufnahmen nachträglich editieren. Der Sequenzer zeigt die Noten in Griffschrift, spielt sie aber klingend.

Viele Grüsse
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: C_E am Mittwoch, 27. Januar 2021, 09:41
Hallo Jürg,

Ich kann nicht glauben, dass ich hier im Wiki beitragen kann, weil ich Windows-Nutzer bin, und nicht obwohl.

Mir geht es zwar wie Harm, dass ich von dem Instrument noch nie gehört hatte. Danke erstmal für das Bekanntmachen.

Aber wenn ich dich richtig verstehe willst du die Griffschrift (und die Noten?) so verbessern, dass Bass und Balg auch klar beschrieben ist.
Was den Bass angeht würde ich dir entweder eine zweite Notenzeile nahelegen (wie bei Orgelmusik oder Akkordeon), oder aber einfach ein Buchstabe über die Notenzeile.
Letzteres ist vielleicht sogar einfacher, weil es ja immer nur ein Ton ist (oder?).

Für die Griffschrift finde ich die Zahlen unten eigentlich schon naheliegend. Ist die Griffschrift für pädagogische Zwecke, also soll sie das lernen erleichtern? Dann sind Zahlen wiederum vielleicht nicht das beste, weil auch diese muss man erst lernen. Ein zweites "System" von Bass-Griffschrift-Zeilen entsprechend der Melodiehand wäre vielleicht auch eine Idee? Aber natürlich weitaus aufwendiger.

Was den Balg angeht: Vielleicht wäre es eine Idee, die Taktstriche als extrem fett o.ä. zu markieren, bei denen gewechselt wird (siehe Anhang). Oder würdest du den Status gerne immer anzeigen?


Ich bin gespannt,
Caspar
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Donnerstag, 28. Januar 2021, 08:09
Hallo Caspar

In deinem angehängten Bild ist die Darstellung des MidiSequenzers zu sehen. Im unteren Teil hat es zwei Balken mit je der Ziffer 5. Der Balken bedeutet stossen, kein Balken bedeutet ziehen. 5 ist der 5. Bass von unten gezählt. Grosse Ziffer steht für die Bass-Reihe beim Balg; kleine Ziffer (eine 4 ist im Bild zu sehen) bedeutet, äusserste Reihe.

Die von mir gewünschte Bass- und Balg-Darstellung bezieht sich auf die LilyPond-Ausgabe. Ein Beispiel, wie es aussehen sollte, ist im Anhang. Zug-/Druck-Wechsel halten sich nicht an die Taktstriche.

Viele Grüsse
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: Arnold am Donnerstag, 28. Januar 2021, 10:24
Hallo Jürg,

ich habe mich in der Vergangenheit einmal mit der Steirischen auseinandergesetzt, deren Griffschrift ja schon relativ ähnlich ist, so bin ich nebenbei auch auf das Örgeli gestoßen.
Ursprünglich ging es bei mir eher darum, die Griffschrift der Steirischen in eine Notation für das Piano-Akkordeon zu übersetzen.
Ein Teil davon wäre natürlich auch ein Griffschriftbild der Steirischen, und sei es nur um Korrektur lesen zu können.
Da der akute Bedarf verschwunden ist, habe ich allerdings nicht mehr weitergemacht.

Ich versuche eine Kurzbeschreibung der Griffschrift - wenn etwas doch nicht stimmt, bitte korrigieren:

Als Umsetzung in Lilypond sah mein Konzept unter anderem vor:

Auf deine Frage nach Notationsmögllichkeiten der Baßbalkens:

Arnold
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Donnerstag, 28. Januar 2021, 11:03
Hallo Arnold

Ja, du bist ein Musikprofi auch für Griffschrift. Selbst spielte ich Es-Horn in der Dorfmusik, Örgeli spiele ich nicht. Ich mache das für einen Freund, der nur die Griffschrift lesen kann, -- und natürlich, weil ich Spass am Programmieren habe!

Das, was du alles geschrieben hast, muss erst mal verdauen. Danke!

Kannst du mir vielleicht Noten für ein 4-reihiges Akkordeon mit Midi Datei geben, mit dem ich meine Akkordeon-Erweiterung testen kann! Das wäre lieb.

Viele Grüsse
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: Arnold am Montag, 1. Februar 2021, 09:02
Hallo Juerg,

ich habe nachgesehen, meine ganzen Arbeiten dazu sind schon über zehn Jahre alt.

Midi-Dateien habe ich keine.
Damals habe ich teilweise umfangreiche Informationen zur Steirischen und auch Noten im Internet gefunden.
Z. Bsp.
members.yline.com/~arizona/harmonika
peter-ganther.de
volksmusikschule.at und volksmusik.cc (Franz Fuchs aus Klosterneuburg, auch Noten)
Sehr interssant war die historische Entwicklung der Griffschrift auf der letztgenannten Internetseite, z. Bsp. auch Aufstrich und Abstrich für Zug und Druck.
Ob diese Seiten heute noch erreichbar sind, oder deren Inhalt sich ungünstig verändert hat, habe ich nicht geprüft.

Damals habe ich immerhin schon SCHEME-Funktionen entwickelt, welche eine angegebene Diskantbelegung in eine Palette von Musikfunktionen übersetzen konnten.
Heute würde ich meine »Diskant-Definiton« etwas anders notieren, das zieht natürlich eine Änderung dieser Routine nach sich.
Diese hatten den im PDF erklärten 3-Buchstaben-Namen, und gaben ein »NoteEvent« ohne »duration«, aber mit der Angabe der Tasten-Koordinate (als »tweak«) zurück. Diese konnten in LILYPOND in einen Akkord eingefügt werden, z. Bsp. »<\mac \nac \pac>4«.
Übrigens, bei der Baßbelegung der Steirischen gibt es eine große Vielfalt. Und für die Baßsymbole gibt es auch einige Benennungsmuster.
Die Diskantbelegung dagegen unterscheidet sich hauptsächlich in der Menge der Tasten, die bedeutenden Unterschiede sind zwischen Steirischer, Örgeli und Club.

Ich stellte auch noch fest, daß für ein gutes Schriftbild noch einiges zu tun wäre.
Z. Bsp. neu Symbole - das Doppelkreuz-Versetzungszeichen von Lilypond sollte für diese Anwendung eher etwas magerer sein, insbesondere bei Vorschlagsnoten. Die Standard-Kreuz-Notenkopfe von Lilypond sind wieder zu mager.
Doppelkreuz-Halbekopf sollte immer eng, eventuell sogar mit kleiner Überschneidung gepaart sein, deshalb wohl am besten als Ligatur zu einem einzigen Zeichen zusamengefaßt.
Während der Hals beim normalen Notenkopf nur zwei Ansatzpunkte (links für nach unten gehalst, rechts nach oben gehalst) benötigt, braucht man beim dieser Griffschrift vier bis fünf (links und rechts sowohl nach oben als auch nach unten gehalst, im Falle der Kreuz-Halbekopf-Ligatur noch ein Ansatzpunkt am Halbekopf für Hals nach unten falls nur eine Tastenreihe benutzt ist)
Kommen dritte und vierte Tastenreihe gemeinsam in einem Akkord vor, dann wird das Kreuz der dritten Reihe rechts vom Hals ausgerichtet (oben genannte Ligatur-Idee).

Diskantbelegungen (neuere Methode, Balgrichtung, Reihe und Gleich- bzw. Orientierungston in den »Notenzeilen« - d. h. bis zum BarCheck - notiert):

steirischDiskantToeneDreireiherNormalDreiunddreissigTasten = {
s1\downbow          bes\3 d'    f'    bes'  d''   f''-^  bes'' d'''  f'''  bes'''     | %\break   % 3. Reihe Zudruck
s1\upbow            es'\3 f'    a'    c''   es''  f''-^  a''   c'''  es''' g'''       | %\break   % 3. Reihe Aufzug
s1\downbow       f\2   a     c'    f'    a'    c''-^ f''    a''   c'''   f'''  a'''   | %\break   % 2. Reihe Zudruck
s1\upbow         bes\2 c'    e'    g'    bes'  c''-^ e''    g''   bes''  d'''  e'''   | %\break   % 2. Reihe Aufzug
s1\downbow    c\1   e     g     c'    e'    g'    c''-^  e''   g''   c'''  e'''  g''' | %\break   % 1. Reihe Zudruck
s1\upbow      f\1   g     b     d'    f'    a'    b'-^   d''   f''   a''   b''   d''' | %\break   % 1. Reihe Aufzug
}

steirischDiskantToeneDreireiherEineChromatischeDreiunddreissigTasten = {
s1\downbow           bes\3 d'    f'    bes'  d''   f''-^  bes'' d'''  f'''  bes'''     | %\break   % 3. Reihe Zudruck
s1\upbow             es'\3 f'    a'    c''   es''  f''-^  a''   c'''  es''' g'''       | %\break   % 3. Reihe Aufzug
s1\downbow       f\2    a     c'    f'    a'    c''-^ f''    a''   c'''   f'''  a'''   | %\break   % 2. Reihe Zudruck
s1\upbow         bes\2  c'    e'    g'    bes'  c''-^ e''    g''   bes''  d'''  e'''   | %\break   % 2. Reihe Aufzug
s1\downbow    es''\1 e     g     c'    e'    g'    c''-^  e''   g''   c'''  e'''  g''' | %\break   % 1. Reihe Zudruck
s1\upbow      as'\1  g     b     d'    f'    a'    b'-^   d''   f''   a''   b''   d''' | %\break   % 1. Reihe Aufzug
}


steirischDiskantToeneDreireiherClubDreiunddreissigTasten = {
s1\downbow          fis\3 d'    es'   bes'  fis'  es''-^  d''   fis'' es''' d'''       | %\break   % 3. Reihe Zudruck
s1\upbow            as\3  es'   cis'  fis'  as'   cis''-^ es''  as''  cis''' es'''     | %\break   % 3. Reihe Aufzug
s1\downbow       f\2   a     c'    f'    a'    c''-^ f''     a''   c'''   f'''  a'''   | %\break   % 2. Reihe Zudruck
s1\upbow         bes\2 c'    e'    g'    bes'  c''-^ e''     g''   bes''  d'''  e'''   | %\break   % 2. Reihe Aufzug
s1\downbow    c\1   e     g     c'    e'    g'    c''-^   e''   g''   c'''  e'''  g''' | %\break   % 1. Reihe Zudruck
s1\upbow      d\1   g     b     d'    f'    a'    b'-^    d''   f''   a''   b''   c''' | %\break   % 1. Reihe Aufzug
}


steirischDiskantToeneVierreiherNormalSechsundvierzigTasten = {
s1\downbow             es'\4 g'    bes'  es''  g''   bes''-^ es''' g'''  bes''' es''''        | %\break   % 4. Reihe Zudruck
s1\upbow               as'\4 bes'  d''   f''   as''  bes''-^ d'''  f'''  as'''  c''''         | %\break   % 4. Reihe Aufzug
s1\downbow          bes\3 d'    f'    bes'  d''   f''-^   bes'' d'''  f'''  bes''' d''''      | %\break   % 3. Reihe Zudruck
s1\upbow            es'\3 f'    a'    c''   es''  f''-^   a''   c'''  es''' g'''   a'''       | %\break   % 3. Reihe Aufzug
s1\downbow       f\2   a     c'    f'    a'    c''-^  f''    a''   c'''  f'''  a'''  c''''    | %\break   % 2. Reihe Zudruck
s1\upbow         bes\2 c'    e'    g'    bes'  c''-^  e''    g''   bes'' d'''  e'''  g'''     | %\break   % 2. Reihe Aufzug
s1\downbow    c\1   e     g     c'    e'    g'    c''-^   e''   g''   c'''  e'''  g'''  c'''' | %\break   % 1. Reihe Zudruck
s1\upbow      f\1   g     b     d'    f'    a'    b'-^    d''   f''   a''   b''   d'''  f'''  | %\break   % 1. Reihe Aufzug
}

steirischDiskantToeneVierreiherEineChromatischeSechsundvierzigTasten = {
s1\downbow               es'\4 g'    bes'  es''  g''   bes''-^ es''' g'''  bes''' es''''        | %\break   % 4. Reihe Zudruck
s1\upbow                 as'\4 bes'  d''   f''   as''  bes''-^ d'''  f'''  as'''  c''''         | %\break   % 4. Reihe Aufzug
s1\downbow           bes\3  d'    f'    bes'  d''   f''-^   bes'' d'''  f'''  bes''' d''''      | %\break   % 3. Reihe Zudruck
s1\upbow              es'\3 f'    a'    c''   es''  f''-^   a''   c'''  es''' g'''   a'''       | %\break   % 3. Reihe Aufzug
s1\downbow        f\2    a     c'    f'    a'    c''-^  f''    a''   c'''  f'''  a'''  c''''    | %\break   % 2. Reihe Zudruck
s1\upbow          bes\2  c'    e'    g'    bes'  c''-^  e''    g''   bes'' d'''  e'''  g'''     | %\break   % 2. Reihe Aufzug
s1\downbow    cis''\1 e     g     c'    e'    g'    c''-^   e''   g''   c'''  e'''  g'''  c'''' | %\break   % 1. Reihe Zudruck
s1\upbow      fis''\1 g     b     d'    f'    a'    b'-^    d''   f''   a''   b''   d'''  f'''  | %\break   % 1. Reihe Aufzug
}

steirischDiskantToeneVierreiherOberkrainerFuenfzigTasten = {
s1\downbow               bes\4 es'   g'    bes'  es''  g''   bes''-^ es''' g'''  bes''' es''''        | %\break   % 4. Reihe Zudruck
s1\upbow                 d'\4  as'   bes'  d''   f''   as''  bes''-^ d'''  f'''  as'''  c''''         | %\break   % 4. Reihe Aufzug
s1\downbow            f\3   bes   d'    f'    bes'  d''   f''-^   bes'' d'''  f'''  bes''' d''''      | %\break   % 3. Reihe Zudruck
s1\upbow              a\3   es'   f'    a'    c''   es''  f''-^   a''   c'''  es''' g'''   a'''       | %\break   % 3. Reihe Aufzug
s1\downbow        c\2    f     a     c'    f'    a'    c''-^  f''    a''   c'''  f'''  a'''  c''''    | %\break   % 2. Reihe Zudruck
s1\upbow          e\2    bes   c'    e'    g'    bes'  c''-^  e''    g''   bes'' d'''  e'''  g'''     | %\break   % 2. Reihe Aufzug
s1\downbow    fis''\1 cis'' e     g     c'    e'    g'    c''-^   e''   g''   c'''  e'''  g'''  c'''' | %\break   % 1. Reihe Zudruck
s1\upbow      cis''\1 fis'' g     b     d'    f'    a'    b'-^    d''   f''   a''   b''   d'''  f'''  | %\break   % 1. Reihe Aufzug
}

steirischDiskantToeneVierreiherFuenfeinhalbChromatischFuenfzigTasten = {
s1\downbow               cis'\4 es'   g'    bes'  es''  g''   bes''-^ es''' g'''  bes''' es''''        | %\break   % 4. Reihe Zudruck
s1\upbow                 d'\4   as'   bes'  d''   f''   as''  bes''-^ d'''  f'''  as'''  c''''         | %\break   % 4. Reihe Aufzug
s1\downbow            as\3  bes    d'    f'    bes'  d''   f''-^   bes'' d'''  f'''  bes''' d''''      | %\break   % 3. Reihe Zudruck
s1\upbow              a\3   es'    f'    a'    c''   es''  f''-^   a''   c'''  es''' g'''   a'''       | %\break   % 3. Reihe Aufzug
s1\downbow        as'\2  f      a     c'    f'    a'    c''-^  f''    a''   c'''  f'''  a'''  c''''    | %\break   % 2. Reihe Zudruck
s1\upbow          fis'\2 bes    c'    e'    g'    bes'  c''-^  e''    g''   bes'' d'''  e'''  g'''     | %\break   % 2. Reihe Aufzug
s1\downbow    fis''\1 cis'' e      g     c'    e'    g'    c''-^   e''   g''   c'''  e'''  g'''  as''' | %\break   % 1. Reihe Zudruck
s1\upbow      cis''\1 fis'' g      b     d'    f'    a'    b'-^    d''   f''   a''   b''   d'''  f'''  | %\break   % 1. Reihe Aufzug
}


steirischDiskantToeneFuenfreiherStrasserAchtundfuenfzigTasten = {
s1\downbow              as'\5   c''     es''    as''    c'''    es'''-^ as'''   c''''   es''''  as''''             | %\break   % 1. Reihe Zudruck
s1\upbow                des''\5 es''    g''     bes''   des'''  es'''-^ g'''    bes'''  des'''' f''''              | %\break   % 1. Reihe Aufzug
s1\downbow          es'\4   g'      bes'    es''    g''     bes''-^ es'''   g'''    bes'''  es''''  g''''          | %\break   % 1. Reihe Zudruck
s1\upbow            as'\4   bes'    d''     f''     as''    bes''-^ d'''    f'''    as'''   c''''   d''''          | %\break   % 1. Reihe Aufzug
s1\downbow      bes\3   d'      f'      bes'    d''     f''-^   bes''   d'''    f'''    bes'''  d''''   f''''      | %\break   % 1. Reihe Zudruck
s1\upbow        es'\3   f'      a'      c''     es''    f''-^   a''     c'''    es'''   g'''    a'''    c''''      | %\break   % 1. Reihe Aufzug
s1\downbow  f\2     a       c'      f'      a'      c''-^   f''     a''     c'''    f'''    a'''    c''''   f''''  | %\break   % 1. Reihe Zudruck
s1\upbow    bes\2   c'      e'      g'      bes'    c''-^   e''     g''     bes''   d'''    e'''    g'''    bes''' | %\break   % 1. Reihe Aufzug
s1\downbow      e\1     g       c'      e'      g'      c''-^   e''     g''     c'''    e'''    g'''    c''''      | %\break   % 1. Reihe Zudruck
s1\upbow        g\1     b       d'      f'      a'      b'-^    d''     f''     a''     b''     d'''    f'''       | %\break   % 1. Reihe Aufzug
}


schwyzerOergeliDiskantToeneEinunddreissigTasten = {
s1\downbow        as\3   cis'' es'   d''   bes'  es''-^ bes'' d'''  es''' cis'''      | %\break   % 3. Reihe Zudruck
s1\upbow          es'\3  cis'' bes   as'   es''  c''-^  as''  c'''  es''' fis''       | %\break   % 3. Reihe Aufzug
s1\downbow     fis'\2 a     c'    f'    a'    c''-^  f''   a''   c'''   f'''   a'''   | %\break   % 2. Reihe Zudruck
s1\upbow       fis'\2 c'    e'    g'    bes'  d''-^  e''   g''   bes''  d'''   e'''   | %\break   % 2. Reihe Aufzug
s1\downbow        e\1    g     c'    e'    g'    c''-^  e''   g''   c'''  e'''        | %\break   % 1. Reihe Zudruck
s1\upbow          g\1    b     d'    f'    a'    b'-^   d''   f''   a''   b''         | %\break   % 1. Reihe Aufzug
}

(Diese »Tabellen« natürlich ohne Gewähr!)

Arnold

Übrigens, für die Neulinge bei dieser Griffschrift für die Diatonischen Akkordeons:
Dreht man das angehängte PDF ins Hochformat, erkennt man, wie das Diskant-Tastenfeld zur Notenzeile positioniert ist und die Lage der zu notierenden Notenköpfe festlegt.
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Montag, 1. Februar 2021, 10:09
Hallo Arnold

Dein Ansatz ist sehr interessant, aber ich kenne mich mit der Skript-Programmierung nicht gut aus. Meine lieblings Programmiersprachen sind C++ und Delphi. Der MidiSequenzer ist in Delphi geschrieben. Er ist jetzt auch für die steirische Harmonika verwendbar. Link: http://juerg5524.ch/temp/new-midi-sequenzer.zip

Knödldrahner mit einer steirischen A-D-G-C Harmonika: "SmallestNote" auf 16th einstellen. Unter "Instrument" "Steirische ADGC" wählen. Knoedldrahner.mid laden. Da alles auf Zug spielbar ist, habe ich die ersten Takte für Druck markiert. Danach Taste "Save for LilyPond" und es entsteht die Datei im Anhang.

Viele Grüsse
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: Arnold am Montag, 1. Februar 2021, 15:26
Hallo Juerg,

ich nehme mal an, daß »\xNote« etwa »\tweak style #'cross« bedeutet.

% nur mit Version 2.18.2 getestet
\score{
  \new Staff \with {
  \remove Accidental_engraver
  } {
    <
      \tweak style #'cross  \tweak Y-offset #1.5  \tweak X-offset #-1.2  cis''
      \tweak Y-offset #-1  \tweak X-offset #0  as
    >
  }
}


Arnold

Übrigens, Lilypond kann, wenn ein »Text-Markup« als Notenkopf gewählt wird, bei diesem Text-Markup auch ein »Callback« platzieren, welches zuerst die angebebene Notenkopfbasislänge (Ganze, Halbe, Viertel und kürzer) herausliest und dann die passende Kopfform (z. Bsp. Doppelkreuz-Versetzungszeichen oder ein Zeichenpaar Doppelkreuz-Versetzungszeichen plus Halbe-Notenkopf) zurückgibt.
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: Arnold am Dienstag, 2. Februar 2021, 08:18
So, Juerg,

da LILYPOND leider keine DLL-Schnittstelle hat, womit man in C++ eigene Engraver programmieren könnte um sie dann in die eigene Lilypond-Anwendung einzubinden, wirst Du wohl über kurz oder lang auch ein wenig mit dem SCHEME-Dialekt GUILE zu tun haben, wenn du ein wenig tiefer ins LILYPOND einsteigen mußt, z. Bsp. um noch diverse Layoutanpassungen vorzunehmen, insbesondere wenn diese »konditional« zu erfolgen haben.

Nun etwas »Spiel-Zeug« für dich.

\version "2.20.0"

%%%%% ein paar Text-Markups mit SCHEME erzeugt

% Steirisch X-Notehead for Quarter and shorter
#(define sxHead2  (make-musicglyph-markup "accidentals.doublesharp"))

% Steirisch X-Notehead for Half - narrow
#(define sxHead1  (make-combine-markup
                   (make-musicglyph-markup "accidentals.doublesharp")
                   (make-translate-scaled-markup '(0.83 . 0)
                    (make-musicglyph-markup "noteheads.s1"))))

% Steirisch X-Notehead for Half - wide for 'one note head column only on stem'
#(define sxHead1w (make-combine-markup
                   (make-musicglyph-markup "accidentals.doublesharp")
                   (make-translate-scaled-markup '(1.15 . 0)
                    (make-musicglyph-markup "noteheads.s1"))))

% Steirisch X-Notehead for Whole
#(define sxHead0  (make-combine-markup
                   (make-musicglyph-markup "accidentals.doublesharp")
                   (make-translate-scaled-markup '(0.75 . 0)
                    (make-musicglyph-markup "noteheads.s0"))))

% Steirisch X-Notehead for Breve
#(define sxHeadM1 (make-combine-markup
                   (make-musicglyph-markup "accidentals.doublesharp")
                   (make-translate-scaled-markup '(1.1 . 0)
                    (make-musicglyph-markup "noteheads.sM1"))))

%%%%% ein paar Callback-Funktionen, um eine Eigenschaft abhängig von einer anderen Eigenschaft festzulegen

% Steirisch Head select callback 'narrow Half' - for multiple note columns
#(define (selectSteirischHead grob)
  (let ((dl (ly:grob-property grob 'duration-log 2)))
   ; (for-each display (list "\n duration-log = " dl "\n"))
   (case dl
    ((2) sxHead2)
    ((1) sxHead1)
    ((0) sxHead0)
    ((-1) sxHeadM1)
    (else (if (< dl 0) sxHeadM1 sxHead2)))))

% Steirisch Head select callback 'wide Half' - for 'single notecolumn'
#(define (selectSteirischHeadW grob)
  (let ((dl (ly:grob-property grob 'duration-log 2)))
   ; (for-each display (list "\n duration-log = " dl "\n"))
   (case dl
    ((2) sxHead2)
    ((1) sxHead1w)
    ((0) sxHead0)
    ((-1) sxHeadM1)
    (else (if (< dl 0) sxHeadM1 sxHead2)))))

% stem-attachment wird (noch?) nicht berechnet.

% Je nach Halsrichtung benötigt man unterschiedliche X-offset-Werte!
#(define ((notehead-value-by-stem-direction upval downval) grob)
  (let* ((stem (ly:grob-object grob 'stem))
         (dir (if (null? stem) 0 (ly:grob-property stem 'direction 0))))
   ; (for-each display (list
   ;  "\n this:           " grob
   ;  "\n stem:           " stem
   ;  "\n stem-direction: " (ly:grob-property stem 'direction)
   ;  "\n"))
   (if (< dir 0) downval upval)))

%%%%% Eine Filterfunktion, um die griffschrift-spezifischen Tweaks entfernen zu können

% um Tweaks herauszufiltern
#(define (remove-listed-tweaks-if-noteevent syms mus)
  (let ((e-name (ly:music-property mus 'name #f)))
   (if (eq? e-name 'NoteEvent)
    (let ((tw (ly:music-property mus 'tweaks '())))
     ; (for-each display (list "\n tweaks = " tw  "\n"))
     (if (not (null? tw))
      (ly:music-set-property! mus 'tweaks
       (filter (lambda (x)
         (not (memq (car x) syms))) tw)))
     mus)
    mus)))

removeTweaksFromNoteevents =
#(define-music-function (syms mus)
  (symbol-list? ly:music?)
  (music-map (lambda (x)
    (remove-listed-tweaks-if-noteevent syms x))
   mus))


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Anwendungsbeispiel
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% Definition Diskantzeile
Diskant = {
  \key g \major

  \tweak stencil #ly:text-interface::print
  \tweak text #selectSteirischHeadW
  \tweak Y-offset 0.5
  cis''1

  <
    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHeadW
    \tweak Y-offset 0.5
    dis''

    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHeadW
    \tweak Y-offset -1.5
    fis'
  >2

  <
    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHeadW
    \tweak Y-offset 1.5
    \tweak X-offset #(notehead-value-by-stem-direction 0 -1.15)
    ges''

    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHeadW
    \tweak Y-offset -0.5
    \tweak X-offset #(notehead-value-by-stem-direction 0 -1.15)
    ases'
  >2

  <
    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHead
    \tweak Y-offset 1
    \tweak X-offset #(notehead-value-by-stem-direction 0 -1.15)
    fes''

    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHead
    \tweak Y-offset -1.5
    \tweak X-offset #(notehead-value-by-stem-direction 2.1 0)
    bis'
  >2

  r2

  <
    \tweak stencil #ly:text-interface::print
    \tweak text #selectSteirischHead
    \tweak Y-offset -0.5
    \tweak X-offset #(notehead-value-by-stem-direction 0.2 -1.15)
    d''

    \tweak Y-offset -3
    \tweak X-offset #(notehead-value-by-stem-direction 1.15 0)
    a'
  >4

  <
    \tweak Y-offset 0
    \tweak X-offset #(notehead-value-by-stem-direction 0 -1.15)
    ces''

    \tweak Y-offset -2.5
    \tweak X-offset #(notehead-value-by-stem-direction 1.15 0)
    b'
  >4

  <
    \tweak Y-offset 3
    es''

    \tweak Y-offset 1
    g''
  >4

  r4
  \bar "|."
}

%%%%% Definition Baßzeile
Bass = {
     \stopStaff
     \override StaffSymbol.line-count = 3
     \override StaffSymbol.line-positions = #'(-0.01 0 0.01)
     \startStaff
     s1
     \stopStaff
     \override Staff.StaffSymbol.line-positions = #'(-0.01 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1)
     \override Staff.StaffSymbol.line-count = 22
     \startStaff
     s1
     \stopStaff
     \override Staff.StaffSymbol.transparent = ##t
     \startStaff
     s1
     \stopStaff
     \override Staff.StaffSymbol.transparent = ##f
     \startStaff
     s1
}

%%%%% Gemeinsame Ausgabe
<<
   \new Staff {
     \clef treble
     \removeTweaksFromNoteevents #'(stencil text Y-offset X-offset) \Diskant
   }
  \new GrandStaff <<
   \new Staff \with {
     \remove Accidental_engraver
     \remove Key_engraver
   } {
     \clef tab
     \Diskant
   }
   \new Staff \with {
     \remove Accidental_engraver
     \remove Key_engraver
     \remove Clef_engraver
     \remove Time_signature_engraver
     \override BarLine.bar-extent = #'(0 . 0)
     \override StaffSymbol.line-count = 3
     \override StaffSymbol.line-positions = #'(-0.01 0 0.01)
   } {
     \Bass
   }
  >>
>>

%%%%% Ausgabe nur der Melodie
   \new Staff {
     \clef treble
     \removeTweaksFromNoteevents #'(stencil text Y-offset X-offset) \Diskant
   }

%%%%% Ausgabe nur der Griffschrift
  \new GrandStaff <<
   \new Staff \with {
     \remove Accidental_engraver
     \remove Key_engraver
   } {
     \clef tab
     \Diskant
   }
   \new Staff \with {
     \remove Accidental_engraver
     \remove Key_engraver
     \remove Clef_engraver
     \remove Time_signature_engraver
     \override BarLine.bar-extent = #'(0 . 0)
     \override StaffSymbol.line-count = 3
     \override StaffSymbol.line-positions = #'(-0.01 0 0.01)
   } {
     \Bass
   }
  >>


Da Lilypond abhängig von der »global-staff-size« leicht unterschiedliche Fonts für die Notensymbole verwendet, müßten eventuell auch die angegebenen Offset- und Versatzwerte davon abhängig angepasst werden.
Andererseits, deine Anwendung sollte zumindest für die Standardgröße ertüchtigt werden können, alle Positions-Offsets vorab auszurechnen und auszugeben. Bei anderen Notenschriftgrößen wird man die Unterschiede vielleicht nur mit der Lupe erkennen können.
Übrigens, ich benutzte eine leicht modifizerte Variante von sumatraPDF als Arbeitsviewer im Lilypond unter Windows, mit dem kann ich größer als 64-fach vergrößern, und 'point-and-click' sucht bei überlappenden Link-Zonen diejenige mit dem kleinsten Flächeninhalt aus.

Arnold
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Mittwoch, 3. Februar 2021, 10:52
Hallo Arnold

Vielen Dank für deine Antwort. Vielleicht werde ich irgendwann deine Ratschläge berücksichtigen. Im Moment bin froh, wenn es mir gelingt, das LilyPond File fehlerfrei hinzubekommen (zum Teil fehlen die Pausen).

Viele Grüsse
Jürg
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: Arnold am Mittwoch, 3. Februar 2021, 16:17
Ja, Ja, Juerg,

etwas so trivial erscheinendes wie die Pausen - und wenn dann noch legato, staccato und tenuto hinzukommen soll, ojemine ...

Erinnert mich ein bisschen an den Spruch
ZitatDie Generalpause kingt in allen Orchestern gleich. — In fast allen!

Arnold
Titel: Antw:LilyPond Griffschrift für Schwyzer Örgeli
Beitrag von: juerg5524 am Donnerstag, 4. Februar 2021, 13:52
Hallo Arnold

Da es mit den Pausen trivial ist, konnte ich den Fehler auch schnell beheben. In neu-midi-sequenzer.zip ist die korrigierte Version.

Ich finde, für das, dass ich vor drei Wochen LilyPond noch nicht kannte, ist mein Programm ziemlich fortgeschritten. Anfangs fehlten mir für die Tests Midi Files mit den zugehörigen Griffschrift-Noten. Jetzt lade ich Files von der folgenden Adresse herunter:

https://www.stammtischmusik.at/noten/noten.shtml

Viele Grüsse
Jürg