lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rolled chords in mulivoice classical guitar score


From: Jonathan Kulp
Subject: Re: rolled chords in mulivoice classical guitar score
Date: Tue, 14 Oct 2008 09:41:31 -0500
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

I think I have it, Tom.  Took me a long time, too.  Try the code below:


% This shows how to use arpeggios that cross
% from one voice to another.

\version "2.11.62"

melody = \relative c'' {
   \voiceOne
   \set Staff.connectArpeggios = ##t
   e4\arpeggio <d f> <d f>2
}

bass = \relative c' {
  \voiceTwo
  \set Staff.connectArpeggios = ##t
  d2\arpeggio <g b>2
}


\score {
    \context Staff = "guitar" \with {
        \consists "Span_arpeggio_engraver"
    }
     <<
        \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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]