[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Atonic Key in cadenza
From: |
Mats Bengtsson |
Subject: |
Re: Atonic Key in cadenza |
Date: |
Fri, 02 Sep 2005 10:42:37 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511 |
The problem here isn't the atonic key function itself, but rather that
you use \cadenzaOn, which makes everything up to the next \cadenzaOff to
be treated as a single long measure, no matter if you insert any extra
manual bar lines every here and there.
One solution is to replace \cadenzaOn with something like
the following:
unmeteredOn = {
\set Timing.measureLength = #(ly:make-moment 1 4)
\set Timing.automaticBars = ##f
}
This works by turning off the automatic printing of bar lines but
since it keeps the internal counting of the position within the bar
as usual, I specified the measure length to be 1/4.
I'm not 100% sure how you want your accidentals to behave within
each "measure". Maybe the my solution only works in this specific
example.
Secondly, I don't really understand why you use such a complicated
function to specify your atonicKey. Whoever proposed it on the mailing
list must have missed that you could just as well do
atonicKey = {
\set Staff.keySignature = #'((4 . 5)
(5 . 5)
(6 . 5)
(0 . 5)
(1 . 5)
(2 . 5)
(3 . 5))
\set Score.extraNatural = ##f
}
(or maybe I have missed some fine point)
After these modifications, your example could look something like
\version "2.6.0"
atonicKey = {
\set Staff.keySignature = #'((4 . 5)
(5 . 5)
(6 . 5)
(0 . 5)
(1 . 5)
(2 . 5)
(3 . 5))
\set Score.extraNatural = ##f
}
unmeteredOn = {
\set Timing.measureLength = #(ly:make-moment 1 4)
%\override Score.TimeSignature #'print-function = ##f
\set Timing.automaticBars = ##f
}
unmeteredOff = {
\set Timing.automaticBars = ##t
\set Timing.measureLength = #(ly:make-moment 4 4)
}
\new Voice {
\atonicKey
\cadenzaOn
c'8 c' c'' c'' d' d' d'' d''
\bar "|" \set Timing.measurePosition = #(ly:make-moment 0 4)
cis'8 cis' cis'' cis'' des' des' des'' des''
\cadenzaOff
\bar "|" \cadenzaOn
des'' des'' c'8 c' c'' c'' d' d' d'' d'' cis' cis'
\bar ":"
cis'8 cis' cis'' cis''
des' des' des'' des''
\unmeteredOff
}
/Mats
Mehmet Okonsar wrote:
the atonic key function works well in cadenza context but repeated altered
notes over a arbitrary barline (see ex. below) do not reproduce accidentals.
Can it be fixed?
it works if I repeat the statement \atonicKey after each barline
---------------------------------
atonicKey =
#(def-music-function (parser location) ()
#{ #(ly:export (make-music 'EventChord
'origin $location
'elements (list (make-music 'KeyChangeEvent
'tonic (ly:make-pitch -1 4 0)
'pitch-alist '((4 . 5)
(5 . 5)
(6 . 5)
(0 . 5)
(1 . 5)
(2 . 5)
(3 . 5))))))
\set Score . extraNatural = ##f #})
\cadenzaOn
{
\atonicKey
\cadenzaOn{
c'8 c' c'' c'' d' d' d'' d''
\bar "|"
cis'8 cis' cis'' cis'' des' des' des'' des''
\bar "|"
des'' % this one does not get a flat.. unless I put another \atonicKey
before
des'' c'8 c' c'' c'' d' d' d'' d'' cis' cis'
\bar ":"
cis'8 % this one no sharp
cis' cis'' cis''
des' des' des'' des''}
\cadenzaOff
}
------------------------------------------------------
Best Regards,
Mehmet Okonsar, pianist-composer
www.okonsar.com
_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user
--
=============================================
Mats Bengtsson
Signal Processing
Signals, Sensors and Systems
Royal Institute of Technology
SE-100 44 STOCKHOLM
Sweden
Phone: (+46) 8 790 8463
Fax: (+46) 8 790 7260
Email: address@hidden
WWW: http://www.s3.kth.se/~mabe
=============================================