lilypond-user
[Top][All Lists]
Advanced

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

Re: Need help creating a template


From: Trevor Daniels
Subject: Re: Need help creating a template
Date: Fri, 16 Oct 2009 23:38:57 +0100


Glendan Lawler wrote Friday, October 16, 2009 10:57 PM

Caveat: I've answered you questions as best I can, although I really
know nothing about Turkish music.

Hey everyone, I was wondering if someone could help me create a template similar to the makam template for Turkish music, but instead for Byzantine music. I can make a guess from looking at the makam.ly how it works, but
there are a few parts I don't understand.   First, in this code:

makamPitchNames = #`(
 (c . ,(ly:make-pitch -1 0 NATURAL))
What does the -1 and the 0 mean? In think the 0 is the scale degree, not
sure, but I have no idea what the -1 does.

Explanations of built-in Scheme functions can be found in
Section 4 of the Internals Reference.  I quote (knowing nothing
of Turkish music):

"Function: ly:make-pitch octave note alter

"octave is specified by an integer, zero for the octave containing
middle C. note is a number indexing the global default scale, with 0
corresponding to pitch C and 6 usually corresponding to pitch B.
alter is a rational number of 200-cent whole tones for alteration."

Also, when you define things
like NATURAL, and KOMA using the fractions at the beginning, does that also
affect the pitch for midi output?

I believe so, if the midi player implements bends.

Second:

...
 (bbm . ,(ly:make-pitch -1 6 BUYUKMUCENNEB))

 ;; f for flat.
 (cfc . ,(ly:make-pitch -1 0 (- KOMA)))
...

What is the ;; f for flat do?

Nothing.  A semi-colon just introduces a comment in Scheme.

Does that mean that cf = c-flat?  is that
some kind of option? If I change the "f" to an "x", will that make cx =
c-flat?

No.  Only the explicitly defined pitch names can be used, but you
can change their names if you wish.

And lastly (I hope) :

#(define eksikMirroredSlashedFlat
 (if (defined? 'eksikMirroredSlashedFlat)
      eksikMirroredSlashedFlat #f))

What is this for and what does it do? It seems like the following code maps the values to the corresponding font characters, but then there's this little bit of code out front, and I don't know what to make of it...

This checks if 'eksikMirroredSlashedFlat is defined, returning its value if it is and returning #f if it isn't. It's used later (lines 133 and 136) to
select which of two mirroredflat accidentals to use.

Trevor





reply via email to

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