Lilypad 2.0

Begonnen von Arnold, Freitag, 11. Januar 2019, 09:32

« vorheriges - nächstes »

Arnold

Hallo,

ich konnte mich nicht beherrschen, und habe Lilypad (vor allem für meine Anwendungsfälle) stark erweitert.

Von 30 Erweiterungsideen sind die kleineren 28 (darunter ein paar Winzigkeiten) jetzt implementiert.

Dieses Lilypad kann sowohl den EDIT als auch den RichEdit-Kern verwenenden. Ansonsten würde ich folgende Neuerungen hervorheben:

  • Nur mit RichEdit-Kern (bevorzugt Version 3.1) ist ein enfaches Syntax-Highlighting möglich (nur als Schnappschuss, die Klassen ,Zeichenkette', ,Scheme', ,Kommentar', ,Lilypond-Strukturklammer' und ,Lilypond')
  • Sogar mit dem EDIT-Kern gibt's White-Space-Display (SPACE, TAB, NBSP, ZWNJ, ZWJ - letzeres habe ich schon benötigt, um einem Schreibmaschienen-TTF das zusammenfassen von »s« und »t« zu einer Ligatur auszutreiben)
  • Nächsten oder vorhergehenden »Pitch« suchen
  • Im ausgewählten Abschnitt alle Töne eine Oktave höher oder tiefer transponieren
  • Gehe zu Klammer (nur Sequentielle Musik, Simultane Musik, Akkord, also »<« mit»,>«, »<<« mit »>>« und »{« mit »}« )
  • Letzten Pitch (den man mit der Pitchsuche nach links finden würde) an der aktuellen Schreibposition einsetzen bzw. markierten Bereich damit ersetzten
  • Steht die Schreibposition am Ende eines »Pitch ohne Oktave«, kann Lilypad (mit F11 oder Control-Space) eine passende Oktave einfügen, basierend auf dem nachst-links vorkommenden Pitch (aber leider ohne die Chord-Berücksichtigung wie beim \relative in Lilypond)
  • Standard-Limit für die Dateigröße sind jetzt 200.000 Zeichen (statt ursprünglich 30.000 Zeichen)
  • Sonderzeichen-Eingabepanel
  • Und natürlich ,,remote popup and goto" zum bereits geöffneten Lilypad-Editorfenster
Mittlerweise so viele Features und Einstellmöglichkeiten, daß man eine Anleitung für dieses Programm erstellen müßte - z. Bsp. werden die Tonnamen nur für die »links unten einzustellende Ptich-Sprache« gesucht.

Die ausstehenden Punkte wären:

  • Prozess ausführen und dessen Ausgabe im Editorfenster sammeln (z. Bsp. für den Lilypond-Aufruf) - mit Timeoutoption, damit das Fenster automatisch geschlossen wird, falls kein Fehlercode vom ausgeführten Programm zurückgemeldet wurde.
  • Mulit-Replace-Dialog für den Ausgewählten bereich - würde auch einen Ringtausch unterstützen
Da frage ich mich allerdings, ob der Nuzten den Programmieraufwand rechtfertigt.

Wer den aktuellen Stand testen oder verwenden will:
Anbei sind zwei Kompilationen abgelegt - mit statisch gelinkter Runtime-Library und mit dynamisch gelinkter Runtime-Library.
Letztere benötigt außer den System-DLLs SHLWAPI.dll, KERNEL32.dll, USER32.dll, GDI32.dll, COMDLG32.dll, ADVAPI32.dll und  SHELL32.dll auch noch die Redistributable Runtime Libraray MSVCR100.dll von Microsoft. Und RichEdit wird in RICHED20.dll erwartet.
Bisher wurde diese Version nur mit Visual Studio 2010 übersetzt, auf einem Win7-Rechner ohne Netzanbindung. Und mangels Sprachkenntnissen ist aktuell nur die englische und deutsche Resource (Übersetzung) enthalten.
Es ist eine Win32-Version mit UNICODE. Da meines Wissens auch Lilypond nur noch auf Windows-Versionen mit UNICODE-Unterstützung läuft, denke ich sogar, daß »lilypad-ascii.exe« eigentlich nicht mehr nötig ist.

Wer interesse hat, möge es testen und mir die Probleme melden.
Auch wer die Quellcodedateien haben möchte, bitte bei mir melden.
Um diese Neuerungen in die Lilypond-Distribution einfließen zu lassen, wäre es aber noch ein längerer Weg - es müßte z. Bsp. im GUB kompilierfähig sein oder werden.

Arnold

(14.01.19 neue EXE: Korrektur in Funktion "relative Oktave bestimmen")

Malte

Hallo Arnold,

das erinnert mich an die issues 698 und 3716 – einerseits sollte der Einstieg für Windows-User erleichtert werden, andererseits hat man mit Frescobaldi schon ein ziemlich gutes Programm für die Eingabe, sodaß fraglich ist, ob LilyPad überhaupt noch so nötig ist ... Wichtig fände ich noch point-and-click-Unterstützung. Bin aber kein Windows-Nutzer und hab seit Jahren Frescobaldi, weshalb ich nicht viel weiteres dazu sagen kann.

Viele Grüße
Malte

Arnold

Ja, point-and-lcik läuft bei mir.

Als (Arbeits-)Viewer benutze ich ein leicht abgeändertes SUMATRAPDF - es sucht sich den Link mit der kleinesten Fläche als Sprungziel aus, somit »Notenkopf vor Bindebogen«.
In der 2.19.8x wird immerhin schon der Registryeintrag für point-and-click richtig gesetzt. Nur »lilypond-invoke-editor« sucht ein Modul noch an der falschen Stelle (Unterverzeichnis mit der Versionnummer statt Unterverzeichnis »current« - siehe auch http://lilypond.1069038.n5.nabble.com/Point-and-Click-on-Win7-SCHEME-does-not-find-a-module-td206695.html und http://lilypond.1069038.n5.nabble.com/Point-and-Click-on-Windows-td207758.html ). Statt die genannte Datei »lilypond-invoke-editor« abzuändern kann man auch eine weitere Umgebungsvariable anlegen (Standard-Library-Pfade für Guile), müßte halt nur dokumentiert werden (und darauf bezieht sich das »konnte mich nicht beherrschen«, ich wollte eigentlich auch mal die Übersetzung der ersten beiden Kapitel des Usage-Guide überarbeiten, dann hätte ich zwangsläufig auch bescheiben müssen, wie es geht, nicht nur wie point-and-click unter Windows laut englischsprachiger Beschreibung eigentlich funktionieren sollte).

Arnold