2015-01-18 19:35 GMT+01:00 Urs Liska <u...@openlilylib.org>: > Am 18.01.2015 um 19:08 schrieb Thomas Morley: > >> 2015-01-18 18:31 GMT+01:00 Samuel DA MOTA <da.mota....@gmail.com>: >>> >>> Hi, >>> >>> On the following documentation, it explains how to create arpeggios >>> across notes in different voices. >>> >>> http://lilypond.org/doc/v2.19/Documentation/notation/expressive-marks-as-lines#arpeggio >>> >>> I tried to tweak the example to get parenthesis arpeggios across >>> voices, with no success. >>> >>> Can anyone help me? >>> -- >>> Samuel DA MOTA >> >> Do you mean?: [...] >> >> The predefined arpeggioParenthesis is made for Bottom-context. >> Simply add the correct context to the definition. > > > Hm. > How should anyone know this or find this out? > From the referenced page from the NR it clearly looks like arpeggios are > exclusively styled using the predefined commands, so when that doesn't help > it's hard to see that it is possible at all. > > If you already know that predefined commands are actually shorthands for > overriding grob properties you may think about following the link "See also: > Internals reference" to > http://lilypond.org/doc/v2.19/Documentation/internals/arpeggio > On this page you would have to realize that > > stencil (stencil): > > ly:arpeggio::print > > The symbol to print. > > is the property you are looking for, which is far from self-evident IMO (I > would actually expect some property setting a 'style or whatever). > > And even if you'd already know that overriding the stencil might be what > you're looking for, how would you know what to use to override it with? > Where is ly:arpeggio::brew-chord-slur documented? In any case nowhere you'd > reach it on that track. > > I would consider following the link "arpeggio-interface" to > http://lilypond.org/doc/v2.19/Documentation/internals/arpeggio_002dinterface > but there is absolutely nothing that helps. > > Apart from the current example of someone looking for an arpeggioParenthesis > this once more shows how difficult it is to get one's way through the > documentation. > > In short: this leads to asking on lilypond-user to be the most promising > approach. Usually you'll get an answer here but I think there should be ways > to make all this information easier to retrieve. Unfortunately I don't have > a clue how one could do that ... > > Urs
Hi Urs, best solution would be to have an easy to understand and easy to document input-code. Something like \shape: [-]\shape displacements item (from NR) Where 'item' is some kind of curve. (When people struggle with \shape then because of the 'displacements', not for 'item') I tried to find something like that for 'arpeggioParenthesis' with the possibility to specify the context, but let it default to 'Bottom. I'm ashamed I couldn't figure how to use a function with an optional argument for it. Best I found is: #(define* (parenthesized-arpeggio #:optional (ctx "Bottom")) #{ \override #ctx . Arpeggio.stencil = #ly:arpeggio::brew-chord-slur \override #ctx . Arpeggio.X-extent = #ly:grob::stencil-width \revert #ctx . Arpeggio.dash-definition #}) But it seems it isn't possible to use it like: \parenthesized-arpeggio Staff (like a music-function) @David K, any chance to make it work? You can use it with the following syntax, though: $(parenthesized-arpeggio) or $(parenthesized-arpeggio "Staff") etc Using it with cross-Staff-Arpeggios in PianoStaff will require an additional _manual_ override for 'X-extent, though. The default-procedure, 'ly:grob::stencil-width' returns a warning and bad output. A bug? Cheers, Harm Full code and examples: \version "2.19.15" #(define* (parenthesized-arpeggio #:optional (ctx "Bottom")) #{ \override #ctx . Arpeggio.stencil = #ly:arpeggio::brew-chord-slur \override #ctx . Arpeggio.X-extent = #ly:grob::stencil-width \revert #ctx . Arpeggio.dash-definition #}) \relative c'' { $(parenthesized-arpeggio) <g b d g>4\arpeggio <g b d g>4\arpeggio <g b d g>4\arpeggio } \new Staff \with { \consists "Span_arpeggio_engraver" } \relative c'' { \set Staff.connectArpeggios = ##t << \new Voice { \voiceOne <g b d g>4\arpeggio <g b d g>4\arpeggio $(parenthesized-arpeggio "Staff") <g b d g>4\arpeggio } \new Voice { \voiceTwo g,4\arpeggio g4\arpeggio g4\arpeggio } >> } \new PianoStaff \relative c'' { \set PianoStaff.connectArpeggios = ##t << \new Staff { <g b d g>4\arpeggio <g b d g>4\arpeggio $(parenthesized-arpeggio "PianoStaff") %% X-extent has to be set manual, %% using 'ly:grob::stencil-width' will return a warning and %% not convincing output \override PianoStaff.Arpeggio.X-extent = #'(-1 . 0) <g b d g>4\arpeggio } \new Staff { g,4\arpeggio g4\arpeggio g4\arpeggio } >> } _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user