Autor Thema: Ambitus von "ausgewählten Unterstimmen"?  (Gelesen 1614 mal)

Arnold

  • Member
Ambitus von "ausgewählten Unterstimmen"?
« am: Donnerstag, 7. April 2016, 08:59 »
Hallo,

ich möchte einen Ambitus ermitteln und anzeigen, aber
  • einzelne Abschitte ausschließen (meistens CueVoice)
  • vorrübergehende mehrstimmige Abschnitte "<< { ... } \\ { ... } >>" einschließen

Wenn ich den Ambitus_engraver in den Staff-Kontext setze, werden die CueVoice-Noten mitgenommen.
Wenn ich den Ambitus_engraver in den Voice-Kontext setze, werden die zweistimmigen Etappen ausgelassen.

\version "2.18.2"
Musik = {
  \time 2/4
  c''2
  << { \voiceOne
    g'2
  } \new CueVoice { \voiceTwo
    % \override NoteHead.color = #red
    % vom Ambitus ausschließen
    d'2
  } >> \oneVoice
  << {
    % \override NoteHead.color = #green
    % in den Ambitus einschließen
    c'''2
  } \\ {
    % \override NoteHead.color = #green
    % in den Ambitus einschließen
    e''2
  } >>
  \bar "|."
}

\score {
  \new Staff {
    \new Voice \with {
      \consists Ambitus_engraver
    } {
      \Musik
    }
  }
  \header {
    piece = "Ambitus_engraver im Voice-Kontext"
  }
}

\score {
  \new Staff \with {
    \consists Ambitus_engraver
  } {
    \new Voice {
      \Musik
    }
  }
  \header {
    piece = "Ambitus_engraver im Staff-Kontext"
  }
}

Meine aktuellen beiden Ideen, um dem Herr zu werden, basieren immer auf einer Music-Function, welche den Ambitus als Zwei-Ton-Akkord zurückliefert (und im Eingangsparameter kann die Quelle per Tag gefiltert werden).
Ein Lösungsansatz wäre, eine Incipit zu basteln.
Der andere Lösungsansatz hätte im Staff zwei parallele Voices, nur von der einen wird der Ambitus erstellt, und die enthält (transparent!) nur den ermittelten Ausdehnungs-Akkord.
Nachteilig ist natürlich, daß ich generell die definierte Musik zweimal angeben muß.

Hat jemand noch andere Ideen oder gar schon eine Lösung (z. Bsp. »<< \new Voice \with { \inherit Ambitus_engraver } ...«?

Arnold

fugenkomponist

  • Member
Re: Ambitus von "ausgewählten Unterstimmen"?
« Antwort #1 am: Donnerstag, 7. April 2016, 09:24 »
Seit Version 2.19.?? von April 2015 gibts für NoteHead eine grob property ignore-ambitus. CueVoice setzt diese auf ##t, man kann sie aber auch selbst per \override für einzelne Noten oder Passagen setzen.

Die mit Abstand einfachste Lösung für dein Problem wär also vermutlich, eine neuere Version zu verwenden. Nur diese Änderung zu übernehmen wird nämlich schwierig, weil der Ambitus_engraver, der sich auf ignore-ambitus beruft, in C++ geschrieben ist.

Arnold

  • Member
Re: Ambitus von "ausgewählten Unterstimmen"?
« Antwort #2 am: Freitag, 8. April 2016, 08:57 »
Danke.

In den Quellcode vom Ambitus-Engraver (version 2.18.x) habe ich bereist reingeschaut - auf der Suche nach einer noch nicht dokumentierten Erweiterung.

Dann werde ich mal nachsehen, ab welchem "Build" das eingschlossen ist, und gegebenenfalls die neueste Entwicklungsversion herunterladen.

Arnold