Autor Thema: Gelöst: Konvertieren statt transponieren  (Gelesen 4471 mal)

Joei

  • Member
Gelöst: Konvertieren statt transponieren
« am: Dienstag, 19. Februar 2013, 14:41 »
Moin,

ich kopiere zur Zeit eine alte Notenhandschrift und habe nach einiger Zeit feststellen müssen, dass ich den Schlüssel falsch gedeutet habe.

Die \transpose Funktion würde mir in dem Fall ja nicht helfen, da sie "nur" auf das Notenbild Einfluss nehmen.

Kennt jemand ein Tool mit dem man quasi per Übersetzungstabelle in nur einem Schritt x Buchstaben ersetzen kann UND in der man auch noch sowas wie geschütze Wörter die nicht ersetzt werden definieren kann?

Das würde aus einem Text "a c \grace e8" mit
"a=h c=d e=f" gechützt "\grace"
"h d \grace f8" machen...

Sollte es doch evtl. Funktionen dafür geben: meine Version ist 2.16.2

Wäre ja auch ganz praktisch, wenn man ungewohnte Schlüsse schnell abschreiben will und nicht
jeden Ton überlegen mag... einfach so tun, als wäre es Violinschlüssel und nachher konvertieren...

nicht das der Code hier viel bringen würde... aber der Vollständigkeit halber ein Beispiel:
 \version "2.16.2"
\language "deutsch"

% ############ so abgeschrieben ############

  \relative c''{
    \key c \major
   a c \grace e8
  }

 % ###### so hätte ich abschreiben sollen ########
 
    \relative c'{
    \key c \major
    \clef alto
   h4 d \grace f8
  }
 
% ############ so könnte ich den output manipulieren ############
% ####### müsste dann noch die Vorzeichen ausblenden ############
\transpose c d {
  \relative c'{
    \clef alto
    \key c \major
   a c \grace e8
  }
}

Irgendeine Idee?

Joei
« Letzte Änderung: Mittwoch, 20. Februar 2013, 14:43 von Joei »

fugenkomponist

  • Member
Re: Konvertieren statt tranponieren
« Antwort #1 am: Dienstag, 19. Februar 2013, 15:50 »
Hmja, du könntest nicht "a" durch "h" ersetzen, sondern " a" durch " h". Denn Befehle fangen ja mit "\" an etc. Evtl. das ganze noch für "\ta" (Tab und a) für Zeilenanfänge.

Be-3

  • Member
Re: Konvertieren statt tranponieren
« Antwort #2 am: Dienstag, 19. Februar 2013, 16:27 »
Ein Problem besteht ja darin, daß die (falsch) abgeschriebenen Töne nicht im richtigen Verhältnis zueinander stehen (die Intervallschritte stimmen nicht) - deshalb hat man mit "normalem" Transponieren auch keinen Erfolg.

Das MIDI-File dürfte sich also völlig falsch anhören.
Wenn Dich das nicht stört, kannst Du einfach nach dem \clef alto die Position des mittleren C verschieben:

\set middleCPosition = #-6

Dann wäre einfach alles auf die richtige Position geschoben und Du müßtest an den Noten überhaupt nichts ändern.

Dann gibt es noch \modalTranspose, damit kann man alle Noten innerhalb einer frei definierbaren Skala verschieben - das geht aber nur diatonisch, denn sonst hast Du wieder ein Vorzeichen-Problem.

Viele Grüße
Torsten

Edit: Halt, halt, natürlich funktioniert \modalTranspose!
Der Vorteil ist, daß die Töne wirklich stimmen und nicht nur so aussehen.

\version "2.16.2"
\language "deutsch"

% ############ so abgeschrieben ############

  \relative c'' {
    \key c \major
    a c \grace e8
  }

 
% ############ modal transponiert ############

chromaticScale = { ces c cis des d dis es e eis fes f fis ges g gis as a ais b h his }

  \modalTranspose a' h \chromaticScale \relative c'' {
    \key c \major
    \clef alto
    a c \grace e8
  }

« Letzte Änderung: Dienstag, 19. Februar 2013, 17:40 von Be-3 »

eluze

  • Member
Re: Konvertieren statt tranponieren
« Antwort #3 am: Dienstag, 19. Februar 2013, 17:08 »
wenn du einen editor mit regex suche/ersetzen hast folgende schritte:

  • notenwerte in Ynotenwert umwandeln: (\<[a-h]+[ies]*[\d\s]+)-->Y\1
  • Ya in h ändern
  • Yc in d ändern
  • ... alle vorkommenden noten

ev. erlaubt dein editor auch alternative (regex) ersetzungen (meiner tut's leider nicht).

viel spass und schau nächstes mal, dass du den richtigen schlüssel erwischst!

Eluz

viel spass

RobUr

  • Member
Re: Konvertieren statt tranponieren
« Antwort #4 am: Dienstag, 19. Februar 2013, 17:38 »
Hallo Joei,

diese „Ersetzung“ scheitert leider daran, dass du bereits falsche Intervalle abgeschrieben hast! Die Töne „a“ und „h“ sowie „c“ und „d“ liegen einen Ganzton voneinander entfernt, „e“ und „f“ jedoch nur einen Halbton! Du müsstest in diesem Fall „e“ durch „fis“ ersetzen. Mit dem „einfach so tun als ob“ ist es eben nicht getan – sorry: man muss beim Lesen schon immer überlegen :-X

@Torsten: mit \set middleCPosition ist es deswegen auch nicht getan.

Dafür lässt sich mit \modalTranspose ein Großteil bereinigen, aber wie schon erwähnt nur diatonisch. Hier der Ansatz:
\version "2.16.2"

\include "deutsch.ly"

\relative c' {
\clef "alto"
\mark "Vorlage:"
h c d e f g a h
h, d f
}

\relative c'' {
\clef "treble"
\mark "gelesen als:"
a h c d e f g a
a, c e
}

\transpose c d {
\relative c' {
\clef "treble"
\mark "falsch transponiert:"
a h c d e f g a
a, c e
}
}

scale = \relative c' { h c d e f g a }

\modalTranspose c d \scale {
\relative c' {
\clef "treble"
\mark "richtige (Diaton-)Schritte:"
a h c d e f g a
a, c e
}
}

\layout {
\context {
\Score
\override RehearsalMark #'self-alignment-X = #LEFT
}
}
Scalenfremde Töne werden ignoriert.

Gruß, Robert

Be-3

  • Member
Re: Konvertieren statt tranponieren
« Antwort #5 am: Dienstag, 19. Februar 2013, 17:45 »
Hallo zusammen,

Überschneidung mit RobUr... (ich habe mein Posting von oben geändert).

Wenn man bei \modalTranspose eine chromatische Skala benutzt (s. oben), dann kommt man sogar mit Versetzungszeichen klar. Doppel-Be und -Kreuz erst mal außen vor, müßte man aber auch aufnehmen.
Wichtig ist, daß jeder Stammton mit allen Erniedrigungen und Erhöhungen vorkommt, sonst gibt es Verschiebungen.

Zur \middleCPosition:
@Torsten: mit \set middleCPosition ist es deswegen auch nicht getan.
Naja, "aussehen" tut's richtig, ist aber inhaltlich natürlich trotzdem falsch - hatte ich ja auch angemerkt. :)
Wenn es aber nur um das Druckbild geht, dann ist das Verschieben der \middleCPosition doch genau die Gegenmaßnahme gegen ein "verschobenes" Abschreiben. ;)
"Schön" ist aber anders

Viele Grüße
Torsten
« Letzte Änderung: Dienstag, 19. Februar 2013, 17:55 von Be-3 »

Joei

  • Member
Re: Konvertieren statt tranponieren
« Antwort #6 am: Dienstag, 19. Februar 2013, 20:31 »
wow. Danke an Alle!!!

Das die Halbtonstufen beim Transponieren zu Problemen führen würden war mir klar, abgesehen davon
wäre das zerschossene MIDI schon unschön und die eigentlich falsche Notation würde mich auch nerven...

Aber die Exkurse über die modale Transposition behalte ich im Hinterkopf!

Daher habe ich mich auf die REGEX suche/ersetze Variante gestürzt...  bin aber leider sehr unerfahren,
was die regular expressions anbelangt... mein TextPad sollte theoretisch in der Lage dazu sein, allerdings
schaffe ich es lediglich eine Fehlermeldung zu produzieren.  >:(

@Eluze: Muss ich Deinen Ausdruck in mehreren Schritten eingeben? Ich habe es so verstanden:

suche nach (\<[a-h]+[ies]*[\d\s]+)
ersetze durch Y\1

Textpad findet jedoch in meinen Noten den Such-Inhalt nicht... (habs mit und ohne Klammern probiert...)

viele Grüße,
Joei

eluze

  • Member
Re: Konvertieren statt transponieren
« Antwort #7 am: Dienstag, 19. Februar 2013, 23:03 »
hallo Joei

ich wusste nicht wieviel erfahrung du mit regex hast und somit habe ich einfach geschrieben wie es mit Notepad++ funktioniert

details:

im regex mode bedeutet

\< oder \> wortbeginn, bzw -ende
[] liste der werte die vorkommen sollen
+ heisst, es muss mindestens 1-mal vorkommen; * es darf 0 bis mehrmals vorkommen
( ) bedeutet, dass dieser gefundene ausdruck in die ersatz-formel eingesetzt werden soll.

dabei ist in NP++ \1 die referenz, andere nutzen $1 oder andere kürzel/präfixe

schau mal was in der hilfe zu textpad steht.

übrigens ist mein code hier nicht fool-proof, aber da ich annehme, das es nur um 1 mal geht lohnt sich der versuch.

du musst dann diese erste formel einmal anwenden und wenn das klappt alle anderen umwandlungen einzeln - d.h. im schlimmsten fall 12 grundtöne + alle -is und -es oder sogar -isis, -eses oder sogar -ises oder-isesnicht!

nochmals - viel glück!

ps: wenn es im textPad nicht klappt kannst du mal den ganzen code schicken und ich kann dann schauen, was herauskommen könnte! (in dieser liste oder direkt als mail an mich, falls du copyright probleme befürchtest)

Eluze

RobUr

  • Member
Re: Konvertieren statt transponieren
« Antwort #8 am: Dienstag, 19. Februar 2013, 23:20 »
Zitat von: Be-3
Wenn es aber nur um das Druckbild geht, dann ist das Verschieben der \middleCPosition doch genau die Gegenmaßnahme gegen ein "verschobenes" Abschreiben.
Und nochmal: nein! A–E (Quinte) wird niemals durch Verschieben der C-Linie zu H–F (Tritonus)!

Gruß, Robert

RobUr

  • Member
Re: Konvertieren statt transponieren
« Antwort #9 am: Dienstag, 19. Februar 2013, 23:34 »
Sorry, jetzt sehe ich den Edit von Torsten (so etwas sollte als neue Antwort gepostet werden):
Zitat von: Be-3
Edit: Halt, halt, natürlich funktioniert \modalTranspose!
Der Vorteil ist, daß die Töne wirklich stimmen und nicht nur so aussehen.
Ich muss dich schon wieder enttäuschen: Richtig ist, dass \modalTranspose funktioniert; falsch hingegen ist, dass es in diesem Fall gegen Falschabschreiben hilft!

Joei hat doch ganz klar geschrieben, dass er irrtümlich „a–c–e“ gelesen hat, weil er den Altschlüssel übersehen hat; im Altschlüssel lauten diese Töne nunmal „h–d–f“! Es geht ja also genau darum, einen Weg zu finden, diese falschen Intervalle zusätzlich zu korrigieren.

Gruß, Robert

eluze

  • Member
Re: Konvertieren statt transponieren
« Antwort #10 am: Mittwoch, 20. Februar 2013, 10:20 »
vergesst das regex-zeugs!

\modalTranspose macht es richtig und mit \displayLilyMusic kriegt man sogar die richtigen töne (diese erscheinen in absoluter stimmung und können in Frescobaldi wieder in den relative modus konvertiert werden)

einverstanden!?

Eluze

Be-3

  • Member
Re: Konvertieren statt transponieren
« Antwort #11 am: Mittwoch, 20. Februar 2013, 11:05 »
Ich muss dich schon wieder enttäuschen: Richtig ist, dass \modalTranspose funktioniert; falsch hingegen ist, dass es in diesem Fall gegen Falschabschreiben hilft!
Keine Angst, ich bin nicht enttäuscht. :)
Warum hilft \modalTranspose nicht gegen Falschabschreiben?

Wenn man das falsch abgeschriebene Ursprungs-Beispiel und zum Vergleich das Ergebnis der der \modalTranspose-Anweisung  mit \displayLilyMusic ausgeben läßt, sieht man doch eindeutig, daß die Pitches und deren Verhältnis zueinander (Intervalle) stimmen.
Was soll daran falsch sein?

Falsch (vorher):
{ { \key c \major
    a' c'' \grace e''8 } }


Richtig (nach \modalTranspose):
{ { \key c \major
    \clef "alto"
    h d' \grace f'8 } }


Weil \modalTranspose einfach nur um n Schritte in einer frei definierbaren Skala verschiebt, ist es mit einer passend gewählten Skala möglich, falsch abgeschriebene Noten in die richtigen Noten zu überführen. Wenn aus den falschen Noten die richtigen Noten erzeugt werden können, könnte man doch durchaus behaupten, daß es "gegen Falschabschreiben hilft", oder nicht?
Daß "von Anfang an richtiges Abschreiben" besser ist, steht ja außer Frage.


Joei hat doch ganz klar geschrieben, dass er irrtümlich „a–c–e“ gelesen hat, weil er den Altschlüssel übersehen hat; im Altschlüssel lauten diese Töne nunmal „h–d–f“! Es geht ja also genau darum, einen Weg zu finden, diese falschen Intervalle zusätzlich zu korrigieren.
Ja, sicher. Aber durch \modalTranspose wird doch aus „a–c–e“ wie gesagt tatsächlich das richtige „h–d–f“. Die falschen Intervalle sind doch korrigiert!


Zitat von: Be-3
Wenn es aber nur um das Druckbild geht, dann ist das Verschieben der \middleCPosition doch genau die Gegenmaßnahme gegen ein "verschobenes" Abschreiben.
Und nochmal: nein! A–E (Quinte) wird niemals durch Verschieben der C-Linie zu H–F (Tritonus)!
Und nochmal, weil ich glaube, daß wir da etwas aneinander vorbeireden:
Deshalb schrieb ich ja: "Wenn es nur um das Druckbild geht"... im gedruckten Endergebnis sind nämlich die Noten nur Tupfen auf Linien und es ist doch völlig unerheblich, wie sie an die (richtige) Stelle gekommen sind, so lange sie eben an der richtigen Stelle sind und richtig aussehen.
Vom Notenbild her wird also tatsächlich aus der von Dir erwähnten Quinte ein Tritonus. Dem ausführenden Musiker sollte recht gleichgültig sein, wie das codiert wurde.

vergesst das regex-zeugs!

\modalTranspose macht es richtig und mit \displayLilyMusic kriegt man sogar die richtigen töne (diese erscheinen in absoluter stimmung und können in Frescobaldi wieder in den relative modus konvertiert werden)

einverstanden!?

Ich muß sagen, daß ich die regex-Lösung gar nicht schlecht fand, weil bei \displayLilyMusic u. ä. beispielsweise Kommentare flöten gehen und Befehle wie \stemUp "ausgepackt" werden und als \override Stem #'direction = #1.
Der Quelltext wird also ziemlich "umgebaut". Das \modalTranspose einfach so stehen zu lassen, würde mich wahrscheinlich in den Wahnsinn treiben, weil die falschen Intervallbeziehungen im Quellcode dem musikalischen Inhalt widersprechen.
Alles hat Vor- und Nachteile, Joei sollte meiner Meinung nach die Angelegenheit als lehrreiche Erfahrung verbuchen und in Erwägung ziehen, den Altschlüssel lesen zu lernen - schließlich hat er im Orchester-Bereich (den Bratschen sei Dank) regelmäßig Kontakt damit und es ist wenig hilfreich, nur so zu tun, als stünde alles im Violinschlüssel, weil man dann die Zusammenhänge (Intervallbeziehungen) ja überhaupt nicht erfassen kann.

Viele Grüße
Torsten

eluze

  • Member
Re: Konvertieren statt transponieren
« Antwort #12 am: Mittwoch, 20. Februar 2013, 11:32 »
hallo Torsten
Zitat
Ich muß sagen, daß ich die regex-Lösung gar nicht schlecht fand, weil bei \displayLilyMusic u. ä. beispielsweise Kommentare flöten gehen und Befehle wie \stemUp "ausgepackt" werden und als \override Stem #'direction = #1.
Der Quelltext wird also ziemlich "umgebaut". Das \modalTranspose einfach so stehen zu lassen, würde mich wahrscheinlich in den Wahnsinn treiben, weil die falschen Intervallbeziehungen im Quellcode dem musikalischen Inhalt widersprechen.
ja, wenn man den fehler erst nach längerer zeit bemerkt und die erwähnten manipulationen schon vorgenommen hat…
ich pflege allerdings die reine musik von den annotationen zu trennen (mittels ghost voice)

Zitat
Alles hat Vor- und Nachteile, Joei sollte meiner Meinung nach die Angelegenheit als lehrreiche Erfahrung verbuchen und in Erwägung ziehen, den Altschlüssel lesen zu lernen - schließlich hat er im Orchester-Bereich (den Bratschen sei Dank) regelmäßig Kontakt damit und es ist wenig hilfreich, nur so zu tun, als stünde alles im Violinschlüssel, weil man dann die Zusammenhänge (Intervallbeziehungen) ja überhaupt nicht erfassen kann.

ich glaube auch dass dies ein einmaliger ausrutscher bleiben wird und deshalb der aufwand mit regex übertrieben wäre!

Eluze

Joei

  • Member
Re: Konvertieren statt transponieren
« Antwort #13 am: Mittwoch, 20. Februar 2013, 13:19 »
manchmal ists mir ja echt peinlich soviele Fragen hier zu posten - aber dann freu ich mich doch wieder an der lebhaften Diskussion...  sehr lehrreich!