Autor Thema: Mehrere Abschnitte in Midi-Datei übertragen  (Gelesen 1586 mal)

oiseau

  • Member
Mehrere Abschnitte in Midi-Datei übertragen
« 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)
       }
   }
}



RobUr

  • Member
Re:Mehrere Abschnitte in Midi-Datei übertragen
« Antwort #1 am: Mittwoch, 15. Dezember 2010, 23:02 »
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

oiseau

  • Member
Re:Mehrere Abschnitte in Midi-Datei übertragen
« Antwort #2 am: Montag, 20. Dezember 2010, 13:39 »
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