Sorry. I spoke too soon. This is no solution. It messes up the VISIBLE
voicing in the score - the direction of stems. It also cannot be used to
arpeggiate across chords where different voices have different durations
- unless one breaks notes up into tied groups. This a bad solution.
Sigh. I still have no accessible solution.
t.
Tom Cloyd wrote:
Adjunct to my previous post -
I'll admit that my Ruby programming experience biases me in the
direction of seeking simple, direct, comprehensible, heuristic
solutions. I think I may have found one -
Building on my notion of using this construct to manage polyphonically
structured scores -
<<
{} \\
{}
>>
it should be possible to restructure voicing so as to force
structuring of chords into expressions which allow use of the simple <
>|\arpeggio construct. This won't make sense formally, but THAT will
not affect the output score, which, after all IS the point of this
exercise.
I can employ this tactic with my score immediately, and it doesn't
require me to completely restructure my scores, or insert all manner
of (to me) incomprehensible code or hacks or whatever. I can just get
on with notating my scores, which really is my objective.
I still hope for a more high level elegant solution, as, I believe, is
your inclination as well. I will continue to watch this thread
carefully, hoping to see something develop. In truth, if it comes from
anyone, I think it's likely to be from you, so...I want to encourage
you to keep thinking about it.
Thanks for your care and effort on this matter,
t.
|
Jonathan Kulp wrote:
Ok this is better. I put the \set Staff.connectArpeggios in the
score block instead. This is more elegant:
% This shows how to use arpeggios that cross
% from one voice to another.
\version "2.11.62"
melody = \relative c'' {
\voiceOne
e4\arpeggio <d f> <d f>2
}
bass = \relative c' {
\voiceTwo
d2\arpeggio <g b>2
}
\score {
\context Staff = "guitar" \with {
\consists "Span_arpeggio_engraver"
}
<<
\set Staff.connectArpeggios = ##t
\context Voice = "melody" { \melody }
\context Voice = "bass" { \bass }
>>
\layout { }
\midi {
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment 160 4)
}
}
}
Tom Cloyd wrote:
Maybe. Probably. If I could get it to work.
The problem is that it start a new staff. I need arpeggios across
voices
in arbitrary locations - of course.
Here's the structure of my file:
\header stuff
staffClassicalGuitar = { my music, in 2 & 3 part voicing}
\score {
\new Staff {
(staff definitions stuff)
<<
\staffClassicalGuitar
>>
}
\layout...
\midi...
}
\paper ....
I got this structure right from the Lilypond 2.11.60 documentation.
But
I cannot find a place to put this stuff -
\new Staff \with {
\consists "Span_arpeggio_engraver"
}
where it will be accepted. Starting a new staff in the middle of a
measure makes no sense. OR in the middle of a line. So, I assume the
"\with..." thing needs to go into the existing "\new Staff..." I
already
have. But nothing I try works - it all causes prodigious errors. For
example, this is NOT accepted...
\score {
\new Staff \with {
\consists "Span_arpeggio_engraver"
\clef treble
\key e \minor
\time 3/4
\tempo "" 4 = 90
[...]
I've tried all the variations I can imagine, and I cannot find any
real-world examples that show me the solution, and I cannot make sense
of things logically. Why do I have to create a new staff to get a
single
arpeggio? If I want to do this arbitrarily, why is the setup for it so
arcane? I must not be understanding something, but can't see what.
Any help would be appreciated (!).
t.
Can you suggest what I need to do?
Jonathan Kulp wrote:
This snippet appears to do what you're asking:
http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks
Go down to where it says "Creating arpeggios across notes in
different voices."
Jon
% ****************************************************************
% Start cut-&-pastable-section
% ****************************************************************
\paper {
#(define dump-extents #t)
indent = 0\mm
line-width = 160\mm
force-assignment = #""
line-width = #(- line-width (* mm 3.000000))
}
\layout {
}
% ****************************************************************
% ly snippet:
% ****************************************************************
\sourcefilename
"creating-arpeggios-across-notes-in-different-voices.ly"
\sourcefileline 0
%% Do not edit this file; it is auto-generated from LSR
http://lsr.dsi.unimi.it
%% This file is in the public domain.
\version "2.11.62"
\header {
lsrtags = "expressive-marks"
texidoces = "
Se puede trazar un símbolo de arpegio entre notas de distintas
voces que están sobre el mismo pentagrama si el grabador
@code{Span_arpeggio_engraver} se traslada al contexto de
@code{Staff} context:
"
doctitlees = "Crear arpegios entre notas de voces distintas"
texidoc = "
An arpeggio can be drawn across notes in different voices on the same
staff if the @code{Span_arpeggio_engraver} is moved to the
@code{Staff}
context:
"
doctitle = "Creating arpeggios across notes in different voices"
} % begin verbatim
\new Staff \with {
\consists "Span_arpeggio_engraver"
}
\relative c' {
\set Staff.connectArpeggios = ##t
<<
{ <e' g>4\arpeggio <d f> <d f>2 } \\
{ <d, f>2\arpeggio <g b>2 }
>>
}
% ****************************************************************
% end ly snippet
% ****************************************************************
Tom Cloyd wrote:
Greetings!
After digging around considerably in the excellent Lilypond
documentation (am running 2.11.60 on Kubuntu Linux 8.04.1), and
running a number of experiments, I'm defeated on this problem.
A simple test case: I have two voices in a single staff.
Periodically, I want to indicate that the notea co-occuring at a
given point are to be played as a "rolled" arpeggio. There is NO
chord notated - just two voices with single notes. Please don't
suggest I merge the voices. That's not the solution I'm looking for.
P. 90 of Lilypond Notation reference illustrates a rolled arpeggio
across different notes in the same staff, but it involves notes in
chord clusters. Besides, my Lilypond doesn't at all like this
stuff (from the reference):
\new Staff \with {
\consists "Span_arpeggio_engraver"
}
\relative c' {...
I get this error - "warning: cannot find file: `consists' "
So, even if I HAD chord clusters, I'd still have a problem.
This rolled arpeggio business is very common in classical guitar
music. I'm a little surprised there isn't some simple way to
indicate it, but...maybe I'm missing something.
Any help would be much appreciated!
Tom
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< [EMAIL PROTECTED] >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user