Hmm. These organizational things are a matter of preference, of course.
Still, I don't see why you'd have to rewrite things so dramatically.
I thought I saw in one of your posts here that you had all the notes in
one variable. It seems like this \score block ought to work even when
all the notes are held in one variable that has mostly one voice and
only occasionally another. Could you attach the actual code of one of
your scores (not abbreviated, but the whole score) so I can really see
what you're working with? I bet this score block can be modified to
work just how you want. The reason I spent so much time figuring out
this problem of arpeggiation across voices is because I know that I'll
want to do it myself at some point, and in fact have already added one
to an existing score where I had just been too lazy to figure out how
before (!).
Personally, I do break my guitar pieces into separate voices, each held
in a different variable, then assemble them onto the staff in the \score
block. I didn't do it this way originally but came to the conclusion
eventually that it was the way to go, so as to avoid having to do lots
of << { } \\ {} >> all over the place. In the orchestral piece I'm
engraving right now, I have different variables for the voices of, say,
flutes 1-2. Now, a lot of the time, the "fluteOneNotes" variable holds
the music for *both* flutes 1 and 2 since they move together with the
same rhythms often, so in those places the "fluteTwoNotes" just has
full-measure skips ("s1*35" or something) while fluteOneNotes has lots
of <chords>. At this moment I can't recall precisely why I decided to
do it this way instead of just putting the occasional <<{}\\{}>> in
there, but I think it had to do with the length of the multivoice
passages. If they were any longer than about two or three bars, then I
broke them up into different variables for each voice because I don't
like having this construct <<{}\\{}>> spread over multiple lines in my
text file--too hard to keep track of it.
Anyway please do send me a file, even off-list if you want, because I
think the problem of making an arpeggio span different voices is solved
now and it's gotten into matters of organization instead of technical
problems. Best,
Jon
Tom Cloyd wrote:
Jonathan,
This looks interesting, and its structure is not hard to discern (for
me), but it requires me to split my guitar scores into voices and write
them separately from beginning to end. This is possible, but not exactly
what one expects to do, except with true multi-voice scores (vocal,
orchestral, etc.).
Further, I find that splitting a score into voices is at times a
formalistic strategy but at other times a practical one. I have several
scores which are simply quicker to notate in two voices, except for a
few measures which make more sense in three voices. Your approach blows
this way of working out of the water. It forces me to split things into
a fixed number of voices from beginning to end.
I remain puzzled about how hard this is all is. It just seems awfully
strained, and I don't yet see a graceful solution - although the
formalistic elegance of your suggestion is appealing for certain types
of scores. But...is this the best approach available for a guitarist?
If so, then I must, in effect, dissect my scores into horizontal layers,
and their complexity instantly increases dramatically. I dread this.
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
--
Jonathan Kulp
http://www.jonathankulp.com
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user