Autor Thema: Einfachstes Transponieren  (Gelesen 1876 mal)

pdqbach

  • Member
Einfachstes Transponieren
« am: Sonntag, 2. Juni 2013, 19:32 »
Liebe Lilypondler,

was ist der einfachste Weg, ein kurzes Notenbeispiel wie das folgende neben der Fassung in a-Moll auch noch einmal nach g-Moll zu transponieren.
Es soll keine Partitur werden, sondern im Ergebnis lediglich beide Zeilen einfach untereinander.

Code:
\version "2.16.1"

#(set-global-staff-size 14)

\relative c'' {
  \clef treble
  \key a\minor
   \tempo "1. Andante"
  \time 4/4
  a'4~ a16 gis a e  f e e f  f e d32 e f16
  e8 gis, a e' d8 f32 e d16 b' d, c b
  \times 2/3 { c16[ d e] }   \times 2/3 { d16[ e f] }   e16 d c b  a8 a' r
}

Danke für Eure Hilfe, Gruß

Pepe

harm6

  • Member
Re: Einfachstes Transponieren
« Antwort #1 am: Sonntag, 2. Juni 2013, 19:40 »
Hi Pepe,

Zitat von: pdqbach
was ist der einfachste Weg, ein kurzes Notenbeispiel wie das folgende neben der Fassung in a-Moll auch noch einmal nach g-Moll zu transponieren.

in eine Variable packen:
m =  ...
Und dann:
\new Staff \m
\new Staff \transpose a g \m

Gruß,
  Harm

pdqbach

  • Member
Re: Einfachstes Transponieren
« Antwort #2 am: Sonntag, 2. Juni 2013, 19:54 »
Hi Harm,

prima, danke, das funktioniert und ist kurz...

Nun habe ich noch das Problem, dass ich evtl. später einmal eine Suchfunktion nach dem Notentext basteln möchte. Dafür wäre es natürlich deutlich einfacher, wenn nicht nur die Ausgabe in g-Moll existiert, sondern auch die entsprechenden Notennamen in der Datei auftauchen, verstehst Du, was ich meine?
Irgendeine Idee? Das würde eine Suche natürlich erheblich vereinfachen, wenn ich dort nicht auch noch auf Transpositionen prüfen muss..

HG

Pepe

harm6

  • Member
Re: Einfachstes Transponieren
« Antwort #3 am: Sonntag, 2. Juni 2013, 20:47 »
Zitat
Dafür wäre es natürlich deutlich einfacher, wenn nicht nur die Ausgabe in g-Moll existiert, sondern auch die entsprechenden Notennamen in der Datei auftauchen, verstehst Du, was ich meine?

Nicht so recht.
Meinst Du, daß m= { c } einen Ganzton hoch transponiert m= { d } ergeben sollte?

Falls ja, so hat Frescobaldi eine entsprechende Funktion.

Du kannst auch die Terminalausgabe von
\displayLilyMusic \transpose a g \m
kopieren, die ist jedoch absolut und nicht relative.


-Harm

pdqbach

  • Member
Re: Einfachstes Transponieren
« Antwort #4 am: Montag, 3. Juni 2013, 12:43 »
Ich versuche, es nochmal deutlicher zu machen:

Für das pdf ist Deine Lösung perfekt, alles erledigt.

Aber wenn ich eine Incipit-Suche einrichten möchte, dann müssen die Töne in allen möglichen Transpositionen in der .ly-Datei auftauchen.
In diesem Fall also neben
a'4~ a16 gis a e
auch
g'4~ g fis g d
Ich könnte natürlich die \display-Funktiion nehmen und dann wiederum reinkopieren; aber wenns noch eleganter geht...

HG

Pepe


harm6

  • Member
Re: Einfachstes Transponieren
« Antwort #5 am: Mittwoch, 5. Juni 2013, 01:03 »
Zitat
Ich versuche, es nochmal deutlicher zu machen:

Für das pdf ist Deine Lösung perfekt, alles erledigt.

Aber wenn ich eine Incipit-Suche einrichten möchte, dann müssen die Töne in allen möglichen Transpositionen in der .ly-Datei auftauchen.
In diesem Fall also neben
a'4~ a16 gis a e
auch
g'4~ g fis g d

Ist schon klar.

Neben dem Kopieren aus dem Terminal, kenn' ich aber nur den Weg via Frescobaldi:
Lilypond->Tonlage->Transponieren

(Ich habe aber eine alte Frescobaldi-Version, kann sein, daß es mittlerweile anders geht.)

-Harm

Be-3

  • Member
Re: Einfachstes Transponieren
« Antwort #6 am: Mittwoch, 5. Juni 2013, 09:15 »
Hallo zusammen,

nur ein paar Gedanken dazu:

Codierung

Wenn Du ohnehin eine "Incipit-Suche" schreiben möchtest, wäre es dann nicht sinnvoll, einen geeignet vereinfachten/ausgedünnten/homogenisierten Noten-Code zu haben? Und warum nicht eine "relative Schreibweise" wählen?

Mit "relativer Schreibweise" meine ich, daß man eher Intervalle als absolute Tonhöhen speichert, genau, wie man als Relativhörer Melodien anhand der Intervallsprünge erkennt, nicht anhand der absoluten Tonhöhen.


Automatisierung

Es wäre doch komfortabel, wenn LilyPond selbständig das benötigte Coding erzeugen könnte.
Und warum nicht ein eigenes File schreiben (z. B. mit Endung .index), das speziell zur Suche verwendet werden kann?
So, daß z. B. aus dem Quellcode test.ly neben test.pdf, test.log usw. noch eine Datei test.index mit den wie auch immer aufbereiteten Such-Informationen generiert wird?

Viele Grüße
Torsten