Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Hilflos-im-Code am Donnerstag, 5. Januar 2017, 08:37
-
Ich tippe schon lange in Notensatzprogramme ein. Deswegen habe ich so einige Tippkonventionen, über die ich permanent stolpere. Insbesondere die Leertaste.
Ich bin gewohnt.
c8defg4ga8aaag2 (15 Anschläge)
woraus in Lilypond wird
c8 d e f g4 g a8 a a a g2 (25 Anschläge / 66 Prozent mehr)
cis8 dis eis fis gis4 gis ais8 ais ais ais gis2 (47 Anschläge)
#c8#d#e#f#g4#g#a#8a#a#a#g2 (26 Anschläge / 80 Prozent mehr )
Ich weiß zwar das c4c funktioniert, aber nicht mehr c4cc. Abgesehen ist in Varianten denken, wenn Tempo entstehen soll, nicht praktisch.
Gibt es irgendwo eine Möglichkeit das Lilypond erst einmal ohne Leerzeichen auskommt und irgendetwas, dass man für die Vorzeichen nur einen Anschlag braucht?
-
Gibt es irgendwo eine Möglichkeit das Lilypond erst einmal ohne Leerzeichen auskommt und irgendetwas, dass man für die Vorzeichen nur einen Anschlag braucht?
Ohne Leerzeichen: Ich könnt mir höchstens vorstellen, daß man einen String mit den Notennamen baut, den mit Scheme-Magie ausbaut zu normalem LilyPond-Text inkl. Leerzeichen und das dann dem Parser füttert. Diese Magie könnte auch gleich beinhalten, die Noten so einzugeben, wie du es möchtest. Ist aber die Frage, ob es tatsächlich möglich ist und falls ja, wie aufwendig es wäre.
Für Vorzeichen nur einen Anschlag statt zwei (# statt is): Nutze englische Notennamen, die nehmen „f“ (flat) und „s“ (sharp) statt „es“ und „is“.
\version "2.19.53"
\language "english"
\relative {
c' d e f g a b c
cf bf af gf ff ef df cf
cs ds es fs gs as bs cs
}Allerdings hat man da natürlich auch b und bf statt h und b; man könnte aber auch ganz eigene Notennamen definieren mit wenig Aufwand.
-
cis8 dis eis fis gis4 gis ais8 ais ais ais gis2 (47 Anschläge)
Ohne Vorzeichen eingeben und von c auf cis transponieren. Kannst du auch in Frescobaldi machen.
-
Wenn man sich die Leertaste sparen will, hat man das Problem, dass man nicht immer alle Möglichkeiten unterscheiden kann.
Z.B. 'gesgesgesges'
kann bedeuten: 'ges' 'ges' 'ges' 'ges'
oder: 'g' 'es' 'g' 'es' 'g' 'es' 'g' 'es'
oder: 'g' 'e' 'unsichtbare Pause' 'g' 'e' 'unsichtbare Pause' 'g' 'e' 'unsichtbare Pause' 'g' 'e' 'unsichtbare Pause'
Man muss also die Notennamen so einstellen, dass keine verwechslungen mehr möglich sind. Z. B. wie bei \language "english", nur mit was anderem für flat wegen 'f' und was anderem für sharp wegen 'unsichtbare Pause'.
Dann hat man zwar noch das Problem, dass die Leerzeichen fehlen, aber die kann man dann auch mit sed/awk/Suchen und Ersetzen/... reinmachen. (dann kann man vielleicht auch gleich is/es bzw. s/f reinmachen)
Oder man benutzt einen Texteditor, der die Leerstellen für einen reinmacht. Emacs müsste das eigentlich können.
Wenn man wirklich Anschläge sparen will, kann man auch alle Notennamen genau einen Anschlag lang machen.
-
Wenn man wirklich Anschläge sparen will, kann man auch alle Notennamen genau einen Anschlag lang machen.
Dann muss man sich aber zusätzlich merken, wie man die persönlichen Notennamen definiert hat. Ob das wirklich praktikabel ist?
-
Dann muss man sich aber zusätzlich merken, wie man die persönlichen Notennamen definiert hat. Ob das wirklich praktikabel ist?
Wenn man aus "a, s, d, f, g, h, j" "c, d, e, f, g, a, h" macht und aus "q, w, e, r, t, z, u" "cis, dis, eis, ..." macht und aus "y, x, c, v, b, n, m" "ces, des, es, fes, ..." macht, dann muss man sich nichts merken, sondern nur abzählen.
-
Exakt die gleiche Belegung hab ich mir gestern überlegt, mir ist dann aber aufgefallen, daß r und s fest belegt sind und nicht durch eine neue „Sprache“ geändert werden können. Es wird also nicht funktionieren, zumindest nicht mit den mir bekannten Tastaturlayouts (qwerty/qwertz/azerty, neo, Dvorak (da sind r und s zwar weit genug rechts, aber dafür sind . und , im Weg)).
-
Jein. Ich habe mich mal bei bestimmten Notensatzprogrammen gewundert, warum man mit 5 die Viertel aktiviert und mit der 4 die Achtel. Meine Vermutung, es gibt ziemlich viele Sprachen, bei denen die Notenwerte keine Zahlen in der Bezeichnung haben. Für die ist das praktisch. Aber bringe einem deutschem Kind so ein System bei. Da ist 4 gleich Viertel deutlich intuitiver.
Was sich mit Geistesanstrengung lösen lässt, ist nicht praktisch. Und Abzählen ist eine Geistesanstrengung.
-
Jein. Ich habe mich mal bei bestimmten Notensatzprogrammen gewundert, warum man mit 5 die Viertel aktiviert und mit der 4 die Achtel. Meine Vermutung, es gibt ziemlich viele Sprachen, bei denen die Notenwerte keine Zahlen in der Bezeichnung haben. Für die ist das praktisch. Aber bringe einem deutschem Kind so ein System bei. Da ist 4 gleich Viertel deutlich intuitiver.
Was sich mit Geistesanstrengung lösen lässt, ist nicht praktisch. Und Abzählen ist eine Geistesanstrengung.
Naja, „abzählen“ ist es auch nicht anders als beim Klavier. Erst mal Geistesanstrengung, dann aber hauptsächlich Übungssache. Man weist den bekannten Tasten halt noch andere Bedeutungen zu, aber das ist gut machbar (weiß ich aus eigener Erfahrung, ich hab innerhalb von zwei Wochen das neo-Tastaturlayout gelernt und schreib jetzt sowohl qwertz als auch neo flüssig (letzteres allerdings schneller)).
Ok, wo ich grad schreibe, kommt mir, daß den Unterschied macht, daß man den Code ja auch lesen können will.
-
dann muss man sich nichts merken, sondern nur abzählen.
Und abzählen geht schneller als die Leertaste drücken?
Kann jeder halten, wie er will ;)
-
ich hab innerhalb von zwei Wochen das neo-Tastaturlayout gelernt und schreib jetzt sowohl qwertz als auch neo flüssig (letzteres allerdings schneller)).
Wie schnell kannst du denn im qwertz-System schreiben?
-
ich hab innerhalb von zwei Wochen das neo-Tastaturlayout gelernt und schreib jetzt sowohl qwertz als auch neo flüssig (letzteres allerdings schneller)).
Wie schnell kannst du denn im qwertz-System schreiben?
Mit diesem Test (https://10fastfingers.com/typing-test/german) komm ich auf 363 Anschläge/Minute mit qwertz und 468 mit neo; allerdings ist der natürlich nicht besonders aussagekräftig, weil er nur eine Aneinanderreihung der häufigsten Wörter darstellt, also keine Sonderzeichen und Zahlen, wenig Großbuchstaben und seltene Buchstaben. Dazu sollte man außerdem vielleicht noch sagen, daß ich zu Hause (wo ich das meiste tippe) ausschließlich neo verwende; abgesehen von der ergonomischen Buchstabenverteilung ists für mich vor allem praktisch wegen besser erreichbarer Satz- und Sonderzeichen, Zahlenblock und Pfeiltasten sowie typographischen Zeichen, die man auf einen Standardtastatur nicht hat. Vielleicht finde ich noch irgendwo einen aussagekräftigeren Test.
-
komm ich auf 363 Anschläge/Minute mit qwertz und 468 mit neo;
Wow, und ich dachte immer, ich könnte schnell schreiben ;)
-
komm ich auf 363 Anschläge/Minute mit qwertz und 468 mit neo;
Wow, und ich dachte immer, ich könnte schnell schreiben ;)
Wie schnell denn, wenn ich fragen darf? ;) Bei diesem Test (https://www.zehnfinger.com/test.php) komm ich auf mit vielen Sonderzeichen (ESA-Text) auf 275 und 396, mit wenig Sonderzeichen (Jazz-Text) auf 303 und 406. Die Ergebnisse oben waren also wirklich nicht realistisch. Und man sieht ganz gut, daß ich Sonderzeichen und Zahlen bei neo echt schneller tippe.
-
Ok, wo ich grad schreibe, kommt mir, daß den Unterschied macht, daß man den Code ja auch lesen können will.
Und Code wird im Zweifel immer öfter gelesen, als geschrieben.
Ich denke die beste Lösung wäre es, dass man es seinem Texteditor beibringt, ab jetzt bei der Taste 'a' die Zeichen 'c' und ' ' auszugeben und bei der Taste 'r' die Zeichen 'f', 'i', 's' und ' '. Wenn man fertig ist mit Noten eingeben schaltet man wieder um auf 'a' und 'r'.
-
Wie schnell denn, wenn ich fragen darf? ;) Bei diesem Test (https://www.zehnfinger.com/test.php) komm ich auf mit vielen Sonderzeichen (ESA-Text) auf 275 und 396, mit wenig Sonderzeichen (Jazz-Text) auf 303 und 406. Die Ergebnisse oben waren also wirklich nicht realistisch. Und man sieht ganz gut, daß ich Sonderzeichen und Zahlen bei neo echt schneller tippe.
Keine Ahnung, ich habe es nie getestet. In der Schule war ich jedenfalls die Schnellste, das ist aber jetzt 40 Jahre her. ;)
-
Also, ich komme beim Tipptest auf 202. Fast lupenreines Zweieinhalbfinger-Suchsystem... Hätte nie erwartet, dass es doch noch so gut konkurriert... *gg*
Zum Thema:
Beim Schreiben von Lilyponddateien ist für mich die Leertaste das kleinste Problem, die finde ich ja immer ohne Hinkucken! Blöder sind die Modifyer-Keys, zu deutsch Shift- Control- usw. Tasten, die ich immer erst suchen muss. Das verlangsamt stark, besonders bei jedem { } [] () und vor allem \ ' , - besonders häufigen Zeichen.
Ein anderer Fall sind sich wiederholende gleiche Strings, etwa lange Triolenketten, aber "\tuplet 3/2 {" habe ich dann entweder in der Zwischenablage oder ich schreibe irgendwas, sagen wir "TT", das ich anschließend per Copy&Paste ersetze.
Ich würde in so einem Fall lieber nicht LilyPond umdefinieren, sondern eine Art Preprozessor einsetzen, der meine Privatschrift in die Amtliche transponiert. Aber das ist vielleicht eher ein persönlicher Spleen von mir: Ich wünsche mir, dass meine Dateien kein Geheimcode bleibe, sondern irgendwann auch für andere nützlich sein können. Und das wäre eine eigene Eingabesprache nicht mehr. Vielleicht nicht mal für mich, wenn ich zwei Jahre nicht mehr dazu komme (Unfall oder sowas) und anschließend Tippfehler finde.
--ingmar
EDIT: Formulierung
-
Beim Schreiben von Lilyponddateien ist für mich die Leertaste das kleinste Problem, die finde ich ja immer ohne Hinkucken! Blöder sind die Modifyer-Keys, zu deutsch Shift- Control- usw. Tasten, die ich immer erst suchen muss. Das verlangsamt stark, besonders bei jedem { } [] () und besonders \ ' , - besonders häufigen Zeichen.
Da könnte dir tatsächlich ein anderes Tastaturlayout helfen; ich hab 2010 eine Facharbeit in LaTeX geschrieben und hab dafür das US-Layout verwendet, das war schon mal ne gute Erleichterung bei wenig Umgewöhnungsaufwand. Inzwischen verwende ich wie gesagt neo, welches erstmal gewöhnungsbedürftig ist, mir aber dadurch hilft, daß Zahlen, Pfeiltasten und Sonderzeichen etc. auf weiteren Ebenen (erreichbar mit Modifiern wie einer umdefinierten Capslock-Taste) in den drei „Alphabetreihen“ liegen. Falls dich das interessiert: auf neo-layout.org (http://neo-layout.org) gibts das für alle gängigen Betriebssysteme runterzuladen und eine genaue Übersicht über die komplette Belegung; bei den meisten Linuxen ists außerdem schon dabei und kann einfach ausgewählt werden.
Ein anderer Fall sind sich wiederholende gleiche Strings, etwa lange Triolenketten, aber "\tuplet 3/2 {" habe ich dann entweder in der Zwischenablage oder ich schreibe irgendwas, sagen wir "TT", das ich anschließend per Copy&Paste ersetze.
Für so etwas gibts in Frescobaldi die Snippets/Schnipsel. Man kann häufig verwendete Strings (und auch kompliziertere Dinge) in solchen Snippets speichern und denen Tastaturkürzel zuweisen. So habe ich z. B. Strg+3 für „\tuplet 3/2 { }“ mit Cursor zwischen den Klammern, Alt+1 für \voiceOne, Alt+X (wär bei qwertz Alt+Q) für \oneVoice, Strg+Shift+V für die Versionsangabe und Strg+Alt+A für den Notentext von „Alle meine Entchen“ (um schnell irgendwelche Sachen ausprobieren zu können).
-
Blöder sind die Modifyer-Keys, zu deutsch Shift- Control- usw. Tasten, die ich immer erst suchen muss. Das verlangsamt stark, besonders bei jedem { } [] () und vor allem \ ' , - besonders häufigen Zeichen.
Genau diese Zeichen halten mich auch immer auf, besonders wenn ich dann statt der AltGr-Taste eine andere Taste erwische und eine Neun, Null oder runde Klammer eintippe. Frescobaldi macht dann immer so komische Ergänzungsvorschläge, die zusätzlich nerven.
Ein anderer Fall sind sich wiederholende gleiche Strings, etwa lange Triolenketten, aber "\tuplet 3/2 {" habe ich dann entweder in der Zwischenablage oder ich schreibe irgendwas, sagen wir "TT", das ich anschließend per Copy&Paste ersetze.
Dafür gibt es Frescobaldi, wie Fugenkomponist schrieb. Frescobaldi ergänzt automatisch bzw. macht Vorschläge, für mich unersetzbar. :)
-
Da ich ebenfalls übersichtliche Ein- wie Ausgabedateien haben und ebenfalls so wenig wie möglich tippen möchte, habe ich mir ein Pythonmodul geschrieben, das mir meine Eingabedatei in eine Lilypond Datei übersetzt.
Damit kann ich meine Eingabe nach den jeweiligen Erfordernissen jederzeit frei anpassen.
Beispiel:
%%%%% Makro
% Beispielpfade
py_install = "C:\\Python34\\python.exe "
py_modul = "H:\\Programmierung\\lilypond\\python\\lilypond_text_umwandeln.py "
dir = "pfad zu einem Ausgabeordner"
pyFkt =
#(define-void-function (parser location name)
(string?)
(define system_cmd (string-append py_install py_modul dir name ".ly") )
(system system_cmd)
)
%%%%% Eingebunden wird das Makro mit:
\pyFkt "beispiel"
\include "beispiel_ausgabe.ly"
Und das Pythonmodul lilypond_text_umwandeln.py :
import os, codecs
pfad = sys.argv[1]
with codecs.open(pfad, 'r', 'utf-8') as f:
txt_input = f.read()
# hier die Umwandlung des Textes mittels Python
# von txt_input in txt_output
# z.Bsp. (wandelt "a8bc#def" in \relative { a'8 b cis d e f } um)
anfang = u'\\relative {'
ende = '}'
txt_neu = [anfang,]
for txt in txt_input:
if txt.isdigit(txt):
txt_output[-1] += txt
continue
elif txt == '#':
txt_output[-1] += 'is'
continue
txt_neu.append(txt)
# Zeilenumbruch nach jedem vierten Eintrag
if len(txt_neu) % 4 == 0:
txt_neu.append('\n')
txt_neu.append(ende)
txt_output = ' '.join(txt_neu)
with codecs.open(pfad + "_ausgabe", 'w', 'utf-8') as f:
f.write(txt_output)
-
Kannst du bitte auch ein Pythonmodul schreiben, wo ich das Notenblatt nur noch vor den Bildschirm halten brauche und es wird automatisch Lilypond Code erzeugt? ;)
-
Beim nächsten Mal. ::)
-
Ich habe noch ein paar Tastentipps für Windows in einem alten c't gefunden:
Mit Shift+Alt schaltet man zwischen den installierten Tastaturen um, für Frescobaldi werde ich in Zukunft das englische Tastaturlayout verwenden.
Mit Ctrl+Alt kann man "Alt Gr." ersetzen, das mag auch eine gewisse Erleichterung bei der Eingabe der geschwungenen und eckigen Klammern sein.