Ternärer Rhythmus im Midi file

Begonnen von uunail, Donnerstag, 31. Oktober 2024, 17:45

« vorheriges - nächstes »

uunail

Liebe Freunde des Notensatzes mit lilypond,

ich benutze das Programm seit vielen Jahren und bin immer wieder begeistert, welch hervorragende Sheets man damit erstellen kann.

Bei meinem aktuellen Projekt steht in der Spielanweisung:

Du darfst diesen Dateianhang nicht ansehen.

Gibt es nun eine Möglichkeit, diese Spielanweisung im Midi umzusetzen, d.h. dass im Notensatz weiterhin die punktierte Achtel und das Sechszehntel gezeigt wird und dass aber im Midi die Längen entsprechend der Spielanweisung geändert sind.

Vielen Dank für Eure Ideen.

Gruß

Uwe

harm6


uunail

Vielen Dank für die Antwort. Ich habe das auch schon gesehen, jedoch würde das, glaube ich, das Problem nicht lösen.

In der Anmerkung zu diesem Absatz steht nämlich, dass die Anwendung von z.B. \swing dann auch in der graphischen Ausgabe zu sehen ist. Der zweite Teil der Anmerkung führt aber möglicherweise zur Lösung, dass man einen separaten Score Block für die Midi Ausgabe erzeugen muss, in dem die Spielanweisung entsprechend umgesetzt ist.

Ich würde es jedoch schön finden, wenn man dazu nicht alles duplizieren müsste. Toll wäre es, wenn man in der Notation ein bedingtes Statement benutzen könnte, das zwischen Grafikrendering und Midiausgabe unterscheidet.

Das \if Statement ist aber wohl nicht im Music Context benutzbar.

Gruß

Uwe

harm6

Wieso sollte man alles duplizieren müssen?

Wenn Du Deine komplette Musik in eine Variable packst, z.B.
meineKompletteMusik = ...
Dann schreib einfach zwei \score:
\score {
  \meineKompletteMusik
  \layout { }
}
\score {
  \meineKompletteMusik
  \midi { }
}

Das sind nur wenige Zeilen...

Nicht sicher bin ich jedoch bei erwas anderem:
Wenn ein Stück in ternärem Rhythmus gespielt werden soll, kenne ich zwei Varianten wie es gedruckt erscheint:
a) glatte Achtel, hier kann man swing.ly problemlos einbauen
b) punktierte Achtel plus sechszehntel, hier weiß ich nicht, ob swing.ly wirken kann. Probiers halt aus.

Gruß,
  Harm

uunail

Ich möchte halt im Notenblatt die Notierung mit punktierter Viertel und Sechszehntel zeigen (weil es schöner aussieht), im Midi File aber die Längen mit den Triolen haben.

Dazu muss ich die entsprechenden Teile in der Musik Definition austauschen.

Dann mache ich die Konstruktion wie von Dir vorgeschlagen:

meineMusik = \relative c {
  a8. c16
}

meineMusikTriolen = \relative c {
  \tuplet 3/2 {a4 c8}
}

\score {
  \meineMusik
  \layout{}
}
\score {
  \meineMusikTriolen
  \midi {}
}

Ich überlege mir halt, ob es eine Möglichkeit gibt, zu erkennen, ob die Musik für layout{} oder für midi{} benutzt wird.
Könnte man so etwas in eine Funktion einpacken?

uunail

Zur Illustration meiner Idee habe ich die folgende Funktion geschrieben, die abhängig vom Ergebnis der Prüfung entweder die eine oder die andere Variante ausgibt.
fir = #
(define-music-function
 (parser location aa bb) (ly:pitch? ly:pitch?)
 (
   if (eq? 1 1)
   #{
     \relative c' { \tuplet 3/4 {$aa 4 $bb 8} }
   #}
   #{
     \relative c' { $aa 4. $bb 8 }
   #}
 )
)

Wenn ich nun wüsste, wie die Bedingung zu formulieren ist, ob die Ausgabe Richtung Grafik oder Midi geht, wäre mein Problem gelöst.

Kann man diesbezüglich jemand weiterhelfen?

Vielen Dank