Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: ingmar am Samstag, 28. November 2015, 11:41

Titel: \time abschneiden ("\time nicht zitierbar?") (GELÖST)
Beitrag von: ingmar am Samstag, 28. November 2015, 11:41
hallo,

es kommt mir vor, als sei das hier schonmal erwähnt worden; ich finde den Beitrag aber nicht. Ich habe eine Variable, die eine Taktangabe enthält und sonst (erstmal) nicht viel. Diese möchte ich zum Bau einer Partitur benutzen.

Da die Partitur nur die ersten paar Take enthalten soll, die Variable aber möglicherweise später noch weitere Taktänderungen enthält, möchte ich auch nur die Anfangsangabe nutzen. Um sie kürzen zu können, muss ich sie meines Wissens zitieren:
\version "2.18.2"

MUSIC = \relative c'' { c d e f g a g a b c2. }
TIME  = { \time 3/4 s1 }

\addQuote "m" { \MUSIC }
\addQuote "t"  { \TIME }

\new Staff <<
\clef "violin"
\quoteDuring #"m" { s2. *4 }
\quoteDuring #"t" { s4 }
>>
Ohne weitere Fehlermeldung wird meine Variable TIME einfach ignoriert. Mach ich da was falsch, was man auch richtig machen könnte?


Danke, Gruß,
--ingmar
Titel: re: \time nicht zitierbar?
Beitrag von: ingmar am Montag, 30. November 2015, 19:33
hallo,

inzwischen bin ich ein bisschen weiter, daher hier noch zwei Kommentare:

1.
Man kann das Problem, um es klarer zu machen, noch folgendermaßen eindampfen:
\version "2.18.2"
\addQuote "a" { \relative c' { \key d \major \clef "bass" \time 3/4 d e fis   g a b    a b cis   d2. } }
\quoteDuring #"a" { s2. *4 }

Ich sehe eigentlich keinen Grund, warum die Tonart beim Zitieren mitgenommen werden soll, die Taktart und der Schlüssel aber nicht. Und ich könnte nicht voraussagen, was sonst noch mitzitiert wird und was nicht. Das ist zumindest für mich ein sehr unerwartetes Verhalten. Vielleicht kann jemand von euch das Konzept dahinter verstehen und erklären...

2.
Bis ich eine bessere Lösung finde, helfe ich mir folgendermaßen: Außer den Zwillingen \quoteDuring und \cueDuring gibt es meines Wissens noch eine einzige andere Möglichkeit, eine Variable abzuschneiden: \tag. Wenn ich damit alles hinter der Taktangabe aus meiner Variablen rausschneide, brauche ich diese nicht zu zitieren, sondern kann sie direkt verwenden. Also im Beispiel:
\version "2.18.2"

MUSIC = \relative c'' { c d e f g a g a b c2. }
TIME  = { \time 3/4 s2. \tag #'nicht-nötig { s2. *2 \time 4/4 s1 \time 5/8 s1*100} }
\addQuote "m" { \MUSIC }

\new Staff <<
\clef "violin"
\quoteDuring #"m" { s2. *4 }
\removeWithTag #'nicht-nötig \TIME
>>

\TIME enthält also immer das, was ich oben definiert habe - aber ich habe einen Bereich darin in eine Kiste mit der Aufschrift 'nicht-nötig' gepackt. Und dort, wo ich diesen Teil nicht brauche, kann ich aus der Variablen alles entfernen, was diese Aufschrift trägt. So kann ich die Variable auch nach Belieben nur teilweise verwenden.

Was stört mich an dieser Lösung? - Dass ich die eigentliche Variablendefinition verkompliziere, obwohl ich die Variable nur an einer einzigen Stelle in der abgekürzten Form brauche. So muss sich jeder, der den Code anschaut, fragen, was da bei der Definition eigentlich geschieht; mir wäre lieber, man müsste sich das nur fragen, wenn man sich für die Stelle interessiert, wo die Abkürzung verwendet wird.

Nunja.. Danke fürs Zuhören...
--ingmar
Titel: Re: re: \time nicht zitierbar?
Beitrag von: fugenkomponist am Montag, 30. November 2015, 21:03
Ich sehe eigentlich keinen Grund, warum die Tonart beim Zitieren mitgenommen werden soll, die Taktart und der Schlüssel aber nicht. Und ich könnte nicht voraussagen, was sonst noch mitzitiert wird und was nicht. Das ist zumindest für mich ein sehr unerwartetes Verhalten. Vielleicht kann jemand von euch das Konzept dahinter verstehen und erklären...

Score.quotedEventTypes ist standardmäßig auf #'(StreamEvent) gesetzt. Zu StreamEvents gehören anscheinend Tonarten dazu, Taktarten und Schlüssel nicht. Mir fällt bloß gerade noch so eine Sache ein, wo die sich unterscheiden: Tonart muss man für jeden Staff einzeln setzen, Taktart nicht. Meiner Meinung nach könnte \quoteDuring gerne auch noch andere Dinge mit zitieren, die keine StreamEvents sind (z. B. QuoteMusic, d. h. andere Zitate); soweit ich weiß sind bisher aber nur „Untermengen“ von StreamEvent möglich. Da besteht also noch einiges Verbesserungspotenzial.

Vielleicht wär das mal ein feature request wert …
Titel: Re: \time nicht zitierbar?
Beitrag von: mgd am Montag, 30. November 2015, 22:20
Gemäß der Doku von 2.19.32 gehört auch TimeSignatureEvent zu StreamEvent. Ist das nicht Taktart ?

Davon abgesehen ist es mir nicht gelungen z.B. mittels \set Staff.quotedEventTypes = #'(note-event articulation-event
                                    crescendo-event rest-event
                                    time-signature-event
                                    slur-event dynamic-event)

im urspünglichen Beispiel die Taktart zu zitieren :(

LG,
Michael
Titel: Re: \time nicht zitierbar?
Beitrag von: fugenkomponist am Montag, 30. November 2015, 23:35
Doch, da hast du schon recht … und auch laut scm/define-event-classes.scm ist time-signature-event ein StreamEvent … merkwürdig.
Titel: Re: \time nicht zitierbar?
Beitrag von: ingmar am Dienstag, 1. Dezember 2015, 18:41
hall freunde, : - )

in der sogenannten "NR" finde ich im Zusammenhang mit Fußnoten (http://lilypond.org/doc/v2.18/Documentation/notation/creating-footnotes.it.html) folgenden Satz: "Some commands like \time and \clef don’t actually use events for creating objects like time signatures and clefs." Das erklärt für mich noch gar nichts, scheint aber zu bestätigen, was Ihr schreibt.

--ingmar
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Dienstag, 1. Dezember 2015, 20:37
Hallo ingmar,

ich habe hier zwei Probleme.

(1)
Das zitieren einer TimeSignature.
Hab' ich auch nicht hinbekommen. Und bei weiterem Nachdenken viel mir auf, daß ein sinnvolles zitieren ja auch die entsprechenden Taktstriche mitnehmen müßte und das geht nicht.
Wie sonst könnte man ein 4/4-Takt-Zitat in einem 3/4-Takt darstellen?
Es gibt also gute Gründe, TimeSignatures vom Zitieren auszuschliessen. Ich hab allerdings nicht nachgeforscht wo und wie das passiert.

(2)
Wozu das Ganze?
Anscheinend willst Du Musik aus zwei Variablen neu kombinieren.
Mir scheint das Zitieren da sowieso der falsche Weg zu sein.
Warum nicht auslesen was Du brauchst und das Ergebnis weiterverwenden?
Führt zu:

\version "2.18.2"

MUSIC = \relative c'' { c d e f g a g a b c2. }
TIME = { \time 3/4 s1 }

\new Staff <<
  \clef "violin"
  \MUSIC
  #(car (extract-named-music TIME 'TimeSignatureMusic))
>>

HTH,
  Harm
Titel: re: \time nicht zitierbar?
Beitrag von: ingmar am Mittwoch, 2. Dezember 2015, 06:50
Zitat
Wozu das Ganze?
Harm, du hattest hier (https://liarchiv.joonet.de/index.php?topic=2024.msg11163) dankenswerterweise dargestellt, wie man ein Inhaltsverzeichnis baut, das die ersten Takte des Stücks zitiert. Und das verwende ich inzwischen in allen meinen Partituren.

Nun habe ich neben den Variablen, die die Noten enthalten, immer eine, die die Taktarten enthält und eine für die Tonartenvorzeichnung, damit ich das bei Bedarf einfach trennen und überschreiben kann. Und da fast alle meine Partituren eine sehr ähnliche Struktur haben und da ich den Variablen immer die gleichen Namen gebe, hab ich schnell gemerkt, dass ich tatsächlich, um eine neue Partitur zu erstellen, kaum mehr tun muss als eine vorhandene zu kopieren und den Namen des eingebundenen Files zu ändern. Aber es gab auch immer noch etwas anderes zu ändern: Die Tonartenvorzeichnung und Taktart in meinem Inhaltsverzeichnis. Ich habe das regelmäßig vergessen. Und so dachte ich, nimmst du statt händischer, ausdrücklicher Angaben, die du dir erstmal umständlich aus einem anderen File zusammensuchen musst, doch einfach die Variablen, die du eh schon pflegst!

Und genau das geht eben nicht, denn die sind zu lang - erstens enthält die Variable mit der Taktart oft für den letzten oder vorletzten Takt noch ein Taktwechsel, damit die letzte Note passt - und selbst wenn nicht, sie enthält auch den Doppelstrich für den Schluss und ist damit immer so lang wie der ganze Satz. Also müsste ich diese Variablen, um sie für das Inhaltsverzeichnis zu nutzen, immer nach dem ersten Takt abschneiden. (Auch die Variablen mit den Noten muss ich natürlich abschneiden - aber das geht problemlos per \quoteDuring.)

Ich hoffe, das macht verständlich, warum ich dies brauche.

Zitat
#(car (extract-named-music TIME 'TimeSignatureMusic))
Ja, genau sowas hatte ich gesucht! Erfüllt den Zweck und ist elegant - eben ureigenstes Lisp. Man muss halt erstmal drauf kommen...

Trotzdem zunächst noch eine Verständnisfrage, weil wir uns grade im anderen Thread mit Datentypen beschäftigen. Ich hätte es, wäre es mir eingefallen, mit #(car TIME) versucht und anschließend mit der Fehlermeldung nichts anzufangen gewusst. Was genau machen die anderen Statements?

Danke.

Und leider gibts noch ein zweites Problem. Denn die Variable mit der Taktart kann natürlich noch einen Auftakt enthalten. Ich habe verschiedene Versuche gemacht, das auch noch zu extrahieren. Hier der Ansatz, der zumindest keine Fehlermeldungen erzeugt (ohne das eigentlich überflüssige car würde er das). Aber leider erzeugt er auch keinen Auftakt:

Zitat
\version "2.18.2"

MUSIC = \relative c' {b   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99}

\new Staff <<
   \clef "violin"
   #(car (extract-named-music TIME 'TimeSignatureMusic))
   #(car (extract-named-music TWO-TIMEMASTER 'PartialSet))
   \MUSIC
>>

Was tun?
--ingmar
Titel: Re: re: \time nicht zitierbar?
Beitrag von: fugenkomponist am Mittwoch, 2. Dezember 2015, 07:51
Zitat
#(car (extract-named-music TIME 'TimeSignatureMusic))
Ja, genau sowas hatte ich gesucht! Erfüllt den Zweck und ist elegant - eben ureigenstes Lisp. Man muss halt erstmal drauf kommen...

Trotzdem zunächst noch eine Verständnisfrage, weil wir uns grade im anderen Thread mit Datentypen beschäftigen. Ich hätte es, wäre es mir eingefallen, mit #(car TIME) versucht und anschließend mit der Fehlermeldung nichts anzufangen gewusst. Was genau machen die anderen Statements?

Schau dir mal die Ausgabe von \displayMusic \TIME an. Das ist ein Musikausdruck, vermutlich was von der Art (make-music 'SequentialMusic […]); car holt aber das erste Element aus einer Liste. extract-named-music scheint also alle Vorkommen von Musik(teil)ausdrücken eines gegebenen Typs (in diesem Fall 'TimeSignatureMusic) aus einem Ausdruck (in diesem Fall TIME) zu holen und in eine Liste zu packen. Die sieht dann vermutlich ungefähr so aus: (list (make-music 'TimeSignatureMusic […]) (make-music 'TimeSignatureMusic […]) […]). Alles Vermutungen, weil ich keine Zeit habe, das auszuprobieren, aber mithilfe von \displayMusic und (display […]) kannst du das nachprüfen ;)
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Mittwoch, 2. Dezember 2015, 12:31
Zitat

    #(car (extract-named-music TIME 'TimeSignatureMusic))

Ja, genau sowas hatte ich gesucht! Erfüllt den Zweck und ist elegant - eben ureigenstes Lisp. Man muss halt erstmal drauf kommen...

Trotzdem zunächst noch eine Verständnisfrage, weil wir uns grade im anderen Thread mit Datentypen beschäftigen. Ich hätte es, wäre es mir eingefallen, mit #(car TIME) versucht und anschließend mit der Fehlermeldung nichts anzufangen gewusst. Was genau machen die anderen Statements?

(1)
#(car TIME) funktioniert nicht, da car den ersten Eintrag einer (nicht leeren) Liste holt. TIME ist aber keine Liste, sondern Musik.
In solchen Fällen kann man ja kurz prüfen:
#(display (list? TIME)) -> #f
#(display (ly:music? TIME)) -> #t

(2)
`extract-named-music' findet sich in /scm/music-functions.scm.
Das erste Argument ist natürlich die Musik die durchsucht werden soll.
Das zweite Argument ist entweder eine Liste von "Musiktypen" oder ein einzelner "Musiktyp"
"Musiktypen" sind in der IR einsehbar:
http://www.lilypond.org/doc/v2.19/Documentation/internals-big-page#music-expressions (http://www.lilypond.org/doc/v2.19/Documentation/internals-big-page#music-expressions)
Das der gesuchte "Musiktyp" 'TimeSignatureMusic heißt, habe ich mir einfach via
\displayMusic \TIME
anzeigen lasen.
Retourniert wird eine Liste, die natürlich mehrere Einträge für die TimeSignature haben kann. Da Du aber nur den ersten haben willst wird car benutzt. Eigentlich hätte man noch prüfen müssen, daß die Liste, die `extract-named-music' zurückgibt nicht leer ist...


Zitat
Und leider gibts noch ein zweites Problem. Denn die Variable mit der Taktart kann natürlich noch einen Auftakt enthalten. Ich habe verschiedene Versuche gemacht, das auch noch zu extrahieren. Hier der Ansatz, der zumindest keine Fehlermeldungen erzeugt (ohne das eigentlich überflüssige car würde er das). Aber leider erzeugt er auch keinen Auftakt
car ist nicht überflüssig, wie aus dem obigen klar sein sollte. ;)
Der Ansatz an sich ist ja nicht schlecht. Allerdings ist TWO-TIMEMASTER nicht definiert...
Er würde in folgender Fassung funktioniert haben:
\version "2.19.32"

MUSIC = \relative c' { b4   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99}

\new Staff <<
   \clef "violin"
   #(car (extract-named-music TIME 'TimeSignatureMusic))
   #(car (extract-named-music TIME 'PartialSet))
   \MUSIC
>>
Bitte beachte, daß die erste Note aus MUSIC eine Dauer braucht, ansonsten würde die letzte Dauer aus TIME weiterverwendet werden...

Um das Ganze zu automatisieren kann man so vorgehen:

get-initials =
#(define-music-function (parser location music)(ly:music?)
"Read out first occurences of 'TimeSignatureMusic and 'PartialSet, if any.
Return them in sequential music"
  ;; to get mono-thematic lists we use `extract-named-music' with single
  ;; expressions, otherwise we would need to select the new list afterwards
  (let* (;; get all 'TimeSignatureMusic from `music'
         (time-elts (extract-named-music music 'TimeSignatureMusic))
         ;; get all 'PartialSet from `music'
         (partial-elts (extract-named-music music 'PartialSet))
         ;; build a new list of the first elements of those lists, if any.
         ;; otherwise proceed with the empty list
         (initials-list   
           (append
             (if (not (null? time-elts))
                 (list (car time-elts))
                 time-elts)
             (if (not (null? partial-elts))
                 (list (car partial-elts))
                 partial-elts))))
   ;; turn it into sequential music
   (make-sequential-music  initials-list)))

\version "2.19.32"

MUSIC = \relative c' { b4   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99}

\new Staff <<
   \clef "violin"
   \get-initials \TIME
   \MUSIC
>>


HTH,
  Harm

EDIT
Braucht eine neuere devel-Version, z.B. 2.19.32
Die Versionsangaben sind jetzt angepasst.
Titel: re: \time nicht zitierbar?
Beitrag von: ingmar am Freitag, 25. Dezember 2015, 09:23
I
Zitat
Er würde in folgender Fassung funktioniert haben: [...]
Hm - leider nicht. Das Beispiel, das Du gibst, liest zwar wie versprochen die Taktart aus der Variable, nicht aber den Auftakt:
Zitat
#(car (extract-named-music TIME 'TimeSignatureMusic))
#(car (extract-named-music TIME 'PartialSet))
Die erste Zeile hat die gewünschte Wirkung, die zweite offenbar nicht; ich verstehe leider auch nicht, warum.

II
Eine Taktvorzeichnung werde ich garantiert in meiner Variablen haben, aber nicht immer einen Auftakt; die zitierte zweite Zeile dürfte aber auch in diesem Fall keinen Fehler erzeugen. Ich hatte die Idee, etwas anzuhängen, das gefunden wird, aber selbst keine Wirkung zeigt. Weiß nicht, was das sein könnte...

Gruß, und Danke für die umfangreiche Hilfe.

--ingmar
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Freitag, 25. Dezember 2015, 11:54
Zitat
Hm - leider nicht. Das Beispiel, das Du gibst, liest zwar wie versprochen die Taktart aus der Variable, nicht aber den Auftakt

2.18.2 liest beides aus, verwendet den Auftakt dann aber nicht.
2.19.32 schon, habe die Version jetzt via EDIT korrigiert

Zitat
Eine Taktvorzeichnung werde ich garantiert in meiner Variablen haben, aber nicht immer einen Auftakt; die zitierte zweite Zeile dürfte aber auch in diesem Fall keinen Fehler erzeugen. Ich hatte die Idee, etwas anzuhängen, das gefunden wird, aber selbst keine Wirkung zeigt.

Das korrospondiert mit
Zitat von: harm
Eigentlich hätte man noch prüfen müssen, daß die Liste, die `extract-named-music' zurückgibt nicht leer ist...

Insoweit:
\version "2.19.32"

MUSIC = \relative c' { b4   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99 }

\new Staff {
   \clef "violin"
   #(if (null? (extract-named-music TIME 'TimeSignatureMusic))
        (make-music 'Music)
        (car (extract-named-music TIME 'TimeSignatureMusic)))
   #(if (null? (extract-named-music TIME 'PartialSet))
        (make-music 'Music)
        (car (extract-named-music TIME 'PartialSet)))
   \MUSIC
}

Funktioniert aber ebenfalls nur mit einer neueren devel-version.

Mein Rat wäre eine solche zu verwenden...

Gruß,
  Harm

Titel: re: \time nicht zitierbar?
Beitrag von: ingmar am Freitag, 25. Dezember 2015, 11:58
Zitat
Funktioniert aber ebenfalls nur mit einer neueren devel-version. - Mein Rat wäre eine solche zu verwenden...
Das hatte ich kommen sehen... Hast du irgendeine Ahnung, wann die Veröffentlichung von 2.20 geplant ist?

Gruß,
--ingmar
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Freitag, 25. Dezember 2015, 12:19
Zitat
Hast du irgendeine Ahnung, wann die Veröffentlichung von 2.20 geplant ist?
siehe
https://liarchiv.joonet.de/index.php?topic=2138.msg11838#msg11838 (https://liarchiv.joonet.de/index.php?topic=2138.msg11838#msg11838)

Gruß,
  Harm
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Samstag, 26. Dezember 2015, 06:43
Zitat von: ingmar
Hm - leider nicht. Das Beispiel, das Du gibst, liest zwar wie versprochen die Taktart aus der Variable, nicht aber den Auftakt

2.18.2 liest beides aus, verwendet den Auftakt dann aber nicht.
2.19.32 schon, habe die Version jetzt via EDIT korrigiert

Folgendes funktioniert jedoch auch mit 2.18.2:

\version "2.18.2"

MUSIC = \relative c' { b4   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99 }

\new Staff {
   \clef "violin"
   #(if (null? (extract-named-music TIME 'TimeSignatureMusic))
        (make-music 'Music)
        (car (extract-named-music TIME 'TimeSignatureMusic)))
   #(if (null? (extract-named-music TIME 'PartialSet))
        (make-music 'Music)
        (context-spec-music
          (car (extract-named-music TIME 'PartialSet))
          'Score))
   \MUSIC
}

Gruß,
  Harm
Titel: ...und als Funktion?
Beitrag von: ingmar am Sonntag, 27. Dezember 2015, 15:10
ja, das letzte gefällt mir, und funktioniert. Danke! Aber doch drei Kommentare/Fragen:


Gruß,
--ingmar
Titel: Re: \time nicht zitierbar?
Beitrag von: harm6 am Sonntag, 27. Dezember 2015, 16:12
Zitat
Ich sehe, was das alles bewirkt, nur die Stelle (context-spec-music ... 'Score) erschließt sich mir nicht. Was macht das genau?

\partial und \time kann man ja einmal setzen und es wirkt sich auf alle Staffs eines Scores aus.
In 2.18.2 ist es nötig diese Funktionalität nach dem Auslesen mittels (context-spec-music ... 'Score) zu restaurieren. Natürlich ist das inkonsistent mit dem Auslesen von \time, wo man das nicht braucht und es trotzdem funktioniert. Deshalb wurde es in 2.19. von David Kastrup (https://liarchiv.joonet.de/index.php?topic=1222.0) korrigiert. Das entsprechende issue auf dem tracker hab' ich jetzt aber nicht gesucht.

Zitat
Statt der if-Anfrage [...], das im Falle [...]

Aber dann brauchst Du ja doch eine if-Anfrage...
Hier versteh ich offensichtlich nicht was Du meinst.

Zitat
Ich habe jetzt mal versucht, das Ganze in eine Funktion umzuwandeln,

Das wäre dann mein `get-initials' aus meinem früheren post als 2.18.2-Variante:

\version "2.18.2"

get-initials =
#(define-music-function (parser location music)(ly:music?)
"Read out first occurences of 'TimeSignatureMusic and 'PartialSet, if any.
Return them in sequential music"
  ;; to get mono-thematic lists we use `extract-named-music' with single
  ;; expressions, otherwise we would need to select the new list afterwards
  (let* (;; get all 'TimeSignatureMusic from `music'
         (time-elts (extract-named-music music 'TimeSignatureMusic))
         ;; get all 'PartialSet from `music'
         (partial-elts (extract-named-music music 'PartialSet))
         ;; build a new list of the first elements of those lists, if any.
         ;; otherwise proceed with the empty list
         (initials-list   
           (append
             (if (not (null? time-elts))
                 (list (car time-elts))
                 time-elts)
             (if (not (null? partial-elts))
                 (list (context-spec-music (car partial-elts) 'Score))
                 partial-elts))))
   ;; turn it into sequential music
   (make-sequential-music  initials-list)))

\version "2.19.32"

MUSIC = \relative c' { b4   c d e   f g a   g a b   c r }
TIME = { \time 3/4 \partial 4 s1*99}

staff =
\new Staff {
   \clef "violin"
   \get-initials \TIME
   \MUSIC
}

<<
  \staff
  \staff
>>

Gruß,
  Harm
Titel: re: \time nicht zitierbar?
Beitrag von: ingmar am Montag, 28. Dezember 2015, 09:42
Zitat
harm6:
Zitat
Statt der if-Anfrage [...], das im Falle [...]

Aber dann brauchst Du ja doch eine if-Anfrage...
Hier versteh ich offensichtlich nicht was Du meinst.
Na, ich meinte folgendes:
Ich habe ein Stück Musik, das eine \partial-Angabe enthält oder eben nicht. Statt zu prüfen, ob sie eine enthält, hänge ich einfach etwas an, was als solche erkannt würde, aber weiter keine Wirkung hat. Sozusagen - falls es das gäbe - \partial 0. Filtere ich nun meine Musik auf Partials und nehme per car die erste, so würde eine tatsächlich Vorhandene auch gefunden. War hingegen keine vorhanden, würde mein an den Schluss angehängtes Dingsbums gefunden, das aber ja per definitionem keine Wirkung hat...

Egal, war wohl ein etwas esoterischer Gedanke, denn \partial 0 oder so gibt es ja nicht.

Wie auch immer, ich hab deine Funktion noch ein wenig erweitert, und jetzt arbeitet sie genau so, wie ich es brauche. Vielen Dank!

--ingmar
Titel: Re: re: \time nicht zitierbar?
Beitrag von: fugenkomponist am Montag, 28. Dezember 2015, 11:15
Egal, war wohl ein etwas esoterischer Gedanke, denn \partial 0 oder so gibt es ja nicht.
\partial 0 nicht, weil 0 keine Dauer ist. Aber „oder so“ gibts:\version "2.19.33"

{
  \partial 1*0 b b b b
  \break % für Anzeige der Taktzahl
  b b b b
}
1*0 ist eine Dauer, eben eine mit dem Faktor 0 skalierte ;)
Titel: Re: re: \time nicht zitierbar?
Beitrag von: ingmar am Montag, 28. Dezember 2015, 13:14
Zitat
fugenkomponist: 1*0 ist eine Dauer, eben eine mit dem Faktor 0 skalierte ;)
Whow! 1:0 gegen Ende der zweiten Halbzeit! Hier bleibts doch immer spannend! : - )

---ingmar