Autor Thema: Dynamik bei MIDI-Export  (Gelesen 2343 mal)

Hilflos-im-Code

  • Member
Dynamik bei MIDI-Export
« am: Mittwoch, 23. November 2016, 16:23 »
Sodala ich habe zwei Stimmen in einer Zeile. In die Unterstimme habe ich die Dynamikbezeichungen eingetragen. Bei MIDI-Export werden die leider nur für die Unterstimme berücksichtigt. Eigentlich müssten die auch für die Oberstimme berücksichtigt werden. In der MIDI-Dokumentation bin ich nicht fündig geworden.
« Letzte Änderung: Mittwoch, 23. November 2016, 16:26 von Hilflos-im-Code »

fugenkomponist

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #1 am: Mittwoch, 23. November 2016, 20:03 »
Minimalbeispiel?

harm6

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #2 am: Mittwoch, 23. November 2016, 22:35 »
Zitat
Eigentlich müssten die auch für die Oberstimme berücksichtigt werden.

Nöö, eigentlich will man immer per Voice Dynamik haben, schließlich können Voices ja auch unterschiedliche haben.

Du könntest die Dyamik in die andere Voice ebenfalls eintragen und den stencil unsichtbar machen oder komplett ausschließen.

Natürlich könntest Du auch performer verschieben, aber das ist ein alles oder nichts. Das kann nur per score geändert werden.
Führt dann zu:

vI = {
\repeat unfold 16 e''16\ppppp
}

vII= {
\repeat unfold 16 c'16
}

\score {
  <<
    \vI
    \vII
  >>
  \midi {
    \context {
      \Voice
      \remove "Dynamic_performer"
    }
    \context {
      \Staff
      \consists "Dynamic_performer"
    }
  }
}

HTH,
  Harm

Hilflos-im-Code

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #3 am: Donnerstag, 24. November 2016, 07:42 »
Zitat
Eigentlich müssten die auch für die Oberstimme berücksichtigt werden.

Nöö, eigentlich will man immer per Voice Dynamik haben, schließlich können Voices ja auch unterschiedliche haben.

Lass dir von jemanden sagen, bei dem es zu einem Musikstudium gereicht hat, dass dieses Exportbedürfnis nicht der Normalfall ist. Und ganz bestimmt nicht immer.

Edit: Bei deinem Code werden grundsätzlich alle Dynamiken ignoriert.
« Letzte Änderung: Donnerstag, 24. November 2016, 11:40 von Hilflos-im-Code »

Hilflos-im-Code

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #4 am: Donnerstag, 24. November 2016, 12:14 »
Minimalbeispiel?

Hier bitte:
\version "2.19.41"
\language "deutsch"


PartPOneVoiceOne = {
\repeat unfold 16 a''4

}

PartPOneVoiceTwo = {
  c'4\ppppp \repeat unfold 15 c'
}

\score {
  <<
    \new Staff <<


        \context Voice = "PartPOneVoiceOne" { \voiceOne \PartPOneVoiceOne }
        \context Voice = "PartPOneVoiceTwo" { \voiceTwo \PartPOneVoiceTwo }

    >>

  >>
  \layout {}
 \midi {
    \context {
                  \voiceOne
      \consists "Dynamic_performer"
    }
   
    \context {
                  \voiceOne
      \remove "Dynamic_performer"
    }
   
   
    \context {
      \Staff
      \consists "Dynamic_performer"
    }
  }
}


fugenkomponist

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #5 am: Freitag, 25. November 2016, 01:34 »
Nöö, eigentlich will man immer per Voice Dynamik haben, schließlich können Voices ja auch unterschiedliche haben.

Lass dir von jemanden sagen, bei dem es zu einem Musikstudium gereicht hat, dass dieses Exportbedürfnis nicht der Normalfall ist. Und ganz bestimmt nicht immer.
Laß dir von jemandem sagen, bei dem es zu einem Musikstudium gereicht hat (und der nebenbei diesen Fall oft genug in seinen Noten findet), daß es auch bei harm dafür gereicht hat. Also runter vom hohen Roß.
Zitat
Edit: Bei deinem Code werden grundsätzlich alle Dynamiken ignoriert.
Ja, da ist harm anscheinend ein kleiner Flüchtigkeitsfehler unterlaufen (oder aber er verwendet eine andere Version als wir beide (2.19.41/2.19.49), die sich in diesem Punkt anders verhält). Es hilft jedenfalls, explizit einen Staff anzulegen, also \new Staff << … >> statt << … >>

Zu deinem Minimalbeispiel: Ich hab keine Ahnung, was du mit diesen beiden \context-Blöcken vorhattest:    \context {
                  \voiceOne
      \consists "Dynamic_performer"
    }
 
    \context {
                  \voiceOne
      \remove "Dynamic_performer"
    }
 
In der Regel sollte man in einem \context-Block einen bestehenden Context-Typ – in diesem Fall \Voice – angeben. \voiceOne hat damit erstmal nichts zu tun; desweiteren hättest du, wenn du \voiceOne in beiden durch \Voice ersetzen würdest, zwei Blöcke, von denen einer den Performer entfernt und der andere ihn an derselben Stelle wieder hinzufügt.
Was du vermutlich meintest, war
\context {
  \Voice
  \remove "Dynamic_performer"
}
Siehe dazu auch harms Antwort.

Außerdem habe ich noch etwas merkwürdiges festgestellt: Es scheint so, als hätte der \context-\Voice-Block keine Auswirkungen auf die Voices, wenn diese nen Namen bekommen. Läßt man die expliziten Namen weg und verwendet \new statt \context, schreibt also \new Voice statt  \context Voice = "PartPOneVoiceTwo", dann erst wirkt der Block so wie gewünscht. Könnte ein Bug sein, das müßte man mal genauer untersuchen. Könnte aber genauso gut sein, daß das dokumentiert ist und nen sinnvollen Grund hat, ich les jetzt aber nicht nachts um Viertel vor zwei noch Dokumentation  ;)

Insgesamt ergibt sich mit harms Lösung und deinem Minimalbeispiel folgendes:
\version "2.19.41"
\language "deutsch"

PartPOneVoiceOne = {
  \repeat unfold 16 a''4

}

PartPOneVoiceTwo = {
  c'4\ppppp \repeat unfold 15 c'
}

\score {
  \new Staff <<
    \new Voice { \voiceOne \PartPOneVoiceOne }
    \new Voice { \voiceTwo \PartPOneVoiceTwo }
  >>
  \layout {}
  \midi {
    \context {
      \Voice
      \remove "Dynamic_performer"
    }
    \context {
      \Staff
      \consists "Dynamic_performer"
    }
  }
}
« Letzte Änderung: Freitag, 25. November 2016, 01:48 von fugenkomponist »

Hilflos-im-Code

  • Member
Re: Dynamik bei MIDI-Export
« Antwort #6 am: Freitag, 25. November 2016, 08:29 »
Danke.

Der MIDI-Block war das Ergebnis, bei dem ich entnervt aufgegeben habe, als ich versucht habe Harms Lösung für mein Problem hinzubiegen. Denn was Du hast hatte ich auch, halt die Namen standen da.

Aber ich bleibe dabei, der Normalfall ist, dass sich in solch einer Zeile die Dynamiken gleichen. Und praktischer wäre es, wenn der Normalfall von der Anwendung gemacht wird und man die Sonderfälle einstellen muss.