Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: oiseau am Montag, 8. Februar 2021, 15:26

Titel: Versetzungszeichen aller Noten umwandeln
Beitrag von: oiseau am Montag, 8. Februar 2021, 15:26
Gibt es eine Funktion in LilyPond, die alle Versetzungszeichen der Noten eines Stückes umwandelt, also von Kreuzen (#) zu Bes (b) und umgekehrt?

Titel: Antw:Alle Vorzeichen umwandeln
Beitrag von: harm6 am Montag, 8. Februar 2021, 15:36
Mir ist nicht ganz klar was Dir vorschwebt...

\transpose cis ces

?

Gruß,
  Harm
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: oiseau am Montag, 8. Februar 2021, 15:43
Häufig ändert ja ein Stück die Tonart. Und wenn zuvor alle erniedrigten/erhöhten Noten beispielsweise mit einem Kreuz versehen waren und die neue Tonart Bes vorsieht, möchte ich die Umwandlung gern von LilyPond im Output vornehmen lassen, um nicht alle Noten einzeln anpassen zu müssen.

Wenn der Transpose-Befehl das könnte, wäre das großartig. Probiere ich gleich einmal aus.   :)
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: oiseau am Montag, 8. Februar 2021, 15:53
Ich habe grade etwas herumprobiert. Der Transpose-Befehl passt leider auch die Noten ohne Versetzungszeichen an.

Um ein Beispiel zu geben, was ich erreichen möchte:

Ausgangsnoten:
c cis d dis e f fis g gis a ais b

Zielnoten in der Ausgabe:
c des d es f ges g as a bes b
Titel: re: Versetzungszeichen aller Noten umwandeln
Beitrag von: ingmar am Montag, 8. Februar 2021, 16:39
Versuch mal \transpose fis ges.

--ingmar
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: ingmar am Montag, 8. Februar 2021, 18:40
Zitat von: oiseau am Montag,  8. Februar 2021, 15:43
...um nicht alle Noten einzeln anpassen zu müssen.

Musst du doch nicht! In deinem Editor kannst du doch mit Suche und Ersetze arbeiten, oder? Das wären im schlimmsten Fall zwölf Durchgänge...

--i
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: oiseau am Montag, 8. Februar 2021, 19:03
Ja, das stimmt. Ich habe mir flugs ein Skript in JavaScript geschrieben, was mir hunderte von Noten in einer Sekunde umwandelt.  ;)

Ich danke Euch dennoch.
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: Manuela am Dienstag, 7. Dezember 2021, 16:02
Zitat von: oiseau am Montag,  8. Februar 2021, 19:03
Ja, das stimmt. Ich habe mir flugs ein Skript in JavaScript geschrieben, was mir hunderte von Noten in einer Sekunde umwandelt.  ;)

Verrätst du uns dein JavaScript? Und in welchem Programm läuft das, editierst du mit einem Webbrowser?
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: Arnold am Mittwoch, 8. Dezember 2021, 07:37
Hallo oiseau,

mit musicmap wäre es möglich, eine selbstentwickelte SCHEME-Funktion auf alle Noten anzuwenden, um die gewünschte »selektive enharmonische Transposition« durchzuführen.

Übrigens, soweit ich mich entsinne ist im normalen transpose auch eine »selektive enharmonische Transposition« verbaut, doch nur wenn der Ton das Doppel-B/-Kreuz übersteigt. Somit könnte \transpose c cisis \transpose c ceses ... auch zu einem ähnlichen Effekt führen.

Arnold
(wieder einmal nur Lösungsansätze ohne Beispiele beschreiben)
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: Hilflos-im-Code am Mittwoch, 8. Dezember 2021, 12:20
Zitat von: oiseau am Montag,  8. Februar 2021, 19:03
Ja, das stimmt. Ich habe mir flugs ein Skript in JavaScript geschrieben, was mir hunderte von Noten in einer Sekunde umwandelt.  ;)
Eine Alternative wäre in Notepad den Suchen und Ersetzen Vorgang als Makro abzuspeichern.
Titel: re: Versetzungszeichen aller Noten umwandeln
Beitrag von: ingmar am Mittwoch, 22. Dezember 2021, 17:42
Zitat von: Hilflos-im-Code am Mittwoch,  8. Dezember 2021, 12:20
Eine Alternative wäre in Notepad den Suchen und Ersetzen Vorgang als Makro abzuspeichern.
tja, meine Rede (https://lilypondforum.de/index.php/topic,860.msg4742.html#msg4742).
--m
Titel: Antw:Versetzungszeichen aller Noten umwandeln
Beitrag von: Lilysetter am Freitag, 28. Januar 2022, 06:19
Für jegliche Arten von automatischer Textmanipulation gibt es das Unix-Kommando sed (stream editor, auch für Windows etc. erhältlich).
Damit kann man entweder mit Commandline-Parametern oder mit einer "script"-Datei anweisen, welche Veränderungen vorgenommen werden sollen.
Jede Art von regulären Ausdrücken ist möglich; ein sehr mächtiges Tool, nur wenige kB groß, das mir schon sehr viel Arbeit erspart hat.
Man muss sich halt mit "man sed" einlesen. Es gibt eine sehr interessante Sammlung "sed one liners".  Schade, dass so etwas in Vergessenheit gerät.
sed [Anweisungen] <input.txt >output.txt