Autor Thema: willkürliche Taktstriche (GELÖST)  (Gelesen 1879 mal)

ingmar

  • Member
willkürliche Taktstriche (GELÖST)
« am: Sonntag, 8. Juni 2014, 19:39 »
hallo,

ich möchte gerne meine Musik ohne Taktarten, aber mit Takststrichen notieren. Also frei fließende Notation, in die ich hier und da an beliebiger Stelle einen Taktstrich einfüge. Die Stellen sind scheinbar beliebig, deshalb wäre ein Ausrechnen der Taktart und anschließendes Unsichtbarmachen viel zu umständlich. Einfach fließende Noten, mit einem Taktstrich hier und da.

Wie krieg ich das hin?

Danke, Gruß,
--ingmar
« Letzte Änderung: Sonntag, 6. Juli 2014, 19:51 von ingmar »

fugenkomponist

  • Member
Re: willkürliche Taktstriche
« Antwort #1 am: Sonntag, 8. Juni 2014, 19:44 »
Taktstriche kannst du an jeder beliebigen Stelle von Hand setzen mit dem \bar-Befehl, z. B. \bar "|" für nen ganz normalen einfachen Taktstrich.
Für Musik ohne Taktart würde sich ein Blick aufs Thema Kadenzen (bzw. die Befehle \cadenzaOn und \cadenzaOff) lohnen. Und natürlich brauchst du ein \remove time_signature_engraver o. ä. an der richtigen Stelle.

ingmar

  • Member
re: willkürliche Taktstriche
« Antwort #2 am: Montag, 9. Juni 2014, 07:54 »
Vielen Dank, das hat das Problem schonmal grundsätzlich gelöst.

Aber dabei ist noch ein anderer Bedarf entstanden: Kann ich irgendwie erreichen, Taktzahlen anzuzeigen? Offenbar zeige ich mit dieser Lösung ja Takte an, die intern keine sind. Müsste ich die Taktzahlen künstlich wieder (als "Probebuchstaben") ergänzen, oder gibt es einen Weg, die eingefügten "bars" zu zählen und anzuzeigen?

Gruß,
--ingmar

harm6

  • Member
Re: willkürliche Taktstriche
« Antwort #3 am: Montag, 9. Juni 2014, 11:40 »
Zitat von: ingmar
Aber dabei ist noch ein anderer Bedarf entstanden: Kann ich irgendwie erreichen, Taktzahlen anzuzeigen? Offenbar zeige ich mit dieser Lösung ja Takte an, die intern keine sind. Müsste ich die Taktzahlen künstlich wieder (als "Probebuchstaben") ergänzen, oder gibt es einen Weg, die eingefügten "bars" zu zählen und anzuzeigen?

Es gibt http://lsr.di.unimi.it/LSR/Item?id=333. Aber einer Änderung für 'measurePosition wegen, funktioniert es in v2.18. nicht mehr.
Ein update dieses snippets ist momentan nicht in Sicht, soweit es die Regeln für die Vorzeichen betrifft.
Die Taktzahlen kann man schon setzen:

\version "2.18.0"

increaseNamedBarNumber =
#(define-music-function (parser location strg)(string?)
#{
  \applyContext #(lambda (ctx)
   (let* ((wo (ly:context-property-where-defined ctx 'currentBarNumber))
          (current-bar-number (ly:context-property wo 'currentBarNumber)))
     (ly:context-set-property! wo 'currentBarNumber (+ 1 current-bar-number))))
  \bar #strg
#})

increaseBarNumber = \increaseNamedBarNumber "|"

remark =
  \markup
    \override #'(baseline-skip . 3)
    \fontsize #-2
    \column { "Accidentals" "missing!" }

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#t #t #t)
  }
}

\relative c' {
c1
\bar "||"
\cadenzaOn
d1.
\increaseBarNumber
dis8_"dis!"
\increaseBarNumber
dis2_"dis!" %% need to use: dis! instead
\mark \remark
dis4_"dis!"
\increaseNamedBarNumber "||"
\cadenzaOff
f1
g1
}

HTH,
  Harm

harm6

  • Member
Re: willkürliche Taktstriche
« Antwort #4 am: Montag, 9. Juni 2014, 14:36 »
Jetzt klappts auch mit den Vorzeichen.
Jedoch besteht die Gefahr, daß in mehrstimmigen Situationen die Taktzahlen doppelt gezählt werden (siehe das zweites Beispiel).
Man darf die Funktion also nur in einer Stimme aufrufen.
Das schon erwähnte LSR-snippet hatte dafür Sorge getragen, indem die 'measure-position als Unterscheidungsmerkmal herangezogen wurde. Das geht aber nicht mehr. Innerhalb einer Kadenz ist measure-position jetzt immer 0.


\version "2.18.0"

increaseNamedBarNumber =
#(define-music-function (parser location strg)(string?)
#{
  \applyContext #(lambda (context)
   (let* ((ctx-1 (ly:context-property-where-defined context 'currentBarNumber))
          (ctx-2 (ly:context-property-where-defined context 'internalBarNumber))
          (current-bar-number (ly:context-property ctx-1 'currentBarNumber))
          (internal-bar-number (ly:context-property ctx-2 'internalBarNumber))
          )
     (ly:context-set-property! ctx-1 'currentBarNumber (1+ current-bar-number))
     (ly:context-set-property! ctx-2 'internalBarNumber (1+ internal-bar-number))))
  \bar #strg
#})

increaseBarNumber = \increaseNamedBarNumber "|"


\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#t #t #t)
  }
}

m =
\relative c'' {
c1
\bar "||"
\cadenzaOn
d1.
\increaseBarNumber
dis8
\increaseBarNumber
dis2
dis4
\increaseNamedBarNumber "||"
\cadenzaOff
f1
g1
}

\new Staff \m

%% not:
\new Staff
<<
\new Voice { \voiceOne \m }
\new Voice {
\voiceTwo \transpose c c, \m
}
>>

%% but:
\new Staff
<<
\new Voice { \voiceOne \m }
\new Voice {
  \voiceTwo
    \relative c' {
      c1
      d1.
      dis8
      dis2
      dis4
      f1
      g1
    }
}
>>

Gruß,
  Harm

ingmar

  • Member
re: willkürliche Taktstriche
« Antwort #5 am: Samstag, 28. Juni 2014, 15:36 »
Das ursprüngliche Problem ist gelöst worden, herzlichen Dank! Die Kombination aus \cadenzaOn und \bar erreicht genau, was ich will. Um die Taktangabe am Anfang zu entfernen, hat sich schließlich

\override Staff.TimeSignature #'stencil = ##f

als eine gute Lösung erwiesen.

Zweiter Teil:
Vorzeichen werden kein Problem werden, da ich der Setzung einfach umstellen werde auf eine Schreibweise, die die Taktstriche nicht berücksichtigt.

Das Taktzählen ist allerdings noch nicht das Gelbe vom Ei, denn eigentlich möchte ich nicht gerne über jeden Taktstrich die Taktnummer setzen. Am elegantesten wär das zu Anfang jeder Zeile; wenn das nicht geht, am liebsten alle fünf Takte.


Danke nochmal, und Gruß, : - )
--ingmar

ingmar

  • Member
re: willkürliche Taktstriche
« Antwort #6 am: Samstag, 28. Juni 2014, 21:24 »
Habs schon gefunden! Alle fünf Takte wäre

\set Score.barNumberVisibility = #(every-nth-bar-number-visible 5)

Scheint zu klappen. Prima!
--ingmar


ingmar

  • Member
..leider bleiben die Vorzeichen ein Problem!
« Antwort #7 am: Mittwoch, 2. Juli 2014, 07:35 »
hallo,


das angesprochene Problem mit den Vorzeichen bleibt leider doch ein Problem. Ich glaubte, ein fröhliches \accidentalStyle forget müsste das in den Griff kriegen. Tatsächlich entstehen in längeren Partituren irgendwann weiter hinten Fehler.

Da die Dokumentation klar sagt "Accidentals are not remembered at all" habe ich hier sogar den Eindruck, einen Bug vor mir zu haben. Ich werde in den nächsten Tagen versuchen, ein kurzes Beispiel zu isolieren und hier zu posten.

Gruß,
--ingmar

ingmar

  • Member
re: ..leider bleiben die Vorzeichen ein Problem!
« Antwort #8 am: Sonntag, 6. Juli 2014, 19:51 »
Ich werde in den nächsten Tagen versuchen, ein kurzes Beispiel zu isolieren und hier zu posten.
...hatte ich geschrieben, aber ich muss mich wohl schlecht aufgepasst haben, ich konnte kein Beispiel mehr finden. Passiert mir öfter mal mit Lilypond... Egal!

Gruß,
--ingmar