Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: oiseau am Mittwoch, 15. Dezember 2010, 13:15
-
Hallo,
ich habe ein Klavierstück in mehrere Abschnitte eingeteilt. Wie kann ich all diese in einer Midi-Datei unterbringen ? Der unten stehende Code funktioniert einwandfrei und erstellt eine Midi-Datei, die das Vorspiel beinhaltet. Bei dem Versuch, alle Abschnitte (Vorspiel, TeilA, TeilB, TeilC) an die Midi-Datei zu übergeben, werden diese überlappend abgespielt, jedoch nicht hintereinander. Was mache ich falsch ? :-[
Danke im Voraus für Eure Hilfe.
Mathias
rechteHandVorspiel = \relative c {
...
}
rechteHandTeilA = \relative c {
...
}
rechteHandTeilB = \relative c {
...
}
rechteHandTeilC = \relative c {
...
}
linkeHandVorspiel = \relative c {
...
}
linkeHandTeilA = \relative c {
...
}
linkeHandTeilB = \relative c {
...
}
linkeHandTeilC = \relative c {
...
}
<<
\new Staff \rechteHandVorspiel
\new Staff \linkeHandVorspiel
>>
\mark \markup \with-dimensions #'(0 . 4) #'(0 . 5) { \null } %Abstand schaffen
<<
\new Staff \rechteHandTeilA
\new Staff \linkeHandTeilA
>>
\mark \markup \with-dimensions #'(0 . 4) #'(0 . 5) { \null } %Abstand schaffen
<<
\new Staff \rechteHandTeilB
\new Staff \linkeHandTeilB
>>
\mark \markup \with-dimensions #'(0 . 4) #'(0 . 5) { \null } %Abstand schaffen
<<
\new Staff \rechteHandTeilC
\new Staff \linkeHandTeilC
>>
\score {
<<
\new Staff \rechteHandVorspiel
\new Staff \linkeHandVorspiel
>>
\layout { }
\midi {
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment 92 4)
}
}
}
-
Hallo Mathias,
herzlich willkommen im Forum!
Offensichtlich handelt es sich hier um das Generalproblem parallele/versetzte Musik. Musik in doppelten spitzen Klammern (<< ... >>) wird simultan eingelesen, während Musik ohne diese Klammern nacheinander erzeugt wird.
Es ist generell am übersichtlichsten, wenn man für die MIDI-Ausgabe einen eigenen \score-Block erzeugt und darin die bereits definierten Variablen verwendet.
Das könnte in deinem Beispiel folgendermaßen aussehen:
\score {
\new PianoStaff
<<
\new Staff = "rechte Hand" {
\rechteHandVorspiel \rechteHandTeilA \rechteHandTeilB \rechteHandTeilC
}
\new Staff = "linke Hand" {
\linkeHandVorspiel \linkeHandTeilA \linkeHandTeilB \linkeHandTeilC
}
>>
\layout {}
}
\score {
<< \rechteHandVorspiel \linkeHandVorspiel >>
<< \rechteHandTeilA \linkeHandTeilA >>
<< \rechteHandTeilB \linkeHandTeilB >>
<< \rechteHandTeilC \linkeHandTeilC >>
\midi {}
}
Steht aber alles im LM und in der NR! Bitte lesen!!!
Zur Erinnerung: \layout {} veranlasst PDF-Output, \midi {} veranlasst MIDI-Output!
Aber weshalb legst du für jeden Block ein neues System an??? \break gefällt dir wohl nicht?
Grüße, Robert
-
Hallo Robert,
vielen Dank für Deine Antwort. Mehrere "\break" erzeugen leider keinen zusätzlichen Abstand zwischen den Zeilen. Vielleicht wolltest Du aber darauf hinaus, dass man die Eigenschaft einer break-Funktion durchaus verändern und so zusätzlichen Raum schaffen kann.
Wie dem auch sei. Ich habe mich nun auf ein System beschränkt, sodass ich das Midi-Problem nicht mehr habe. :)
Nochmals vielen Dank. ;D