lilypond-devel
[Top][All Lists]
Advanced

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

Re: Diatonic notation system


From: Hans Aberg
Subject: Re: Diatonic notation system
Date: Tue, 9 Dec 2008 11:05:15 +0100

On 9 Dec 2008, at 05:00, Graham Breed wrote:

To get it to sound right, you multiply by 6.  If accidentals and
transpositions don't work you may need to define a different grid from them. The worst is that you need one init file to define the notation
-- so that the accidentals are distinct where you want them to be --
and another init file to define the true pitches.

When I fiddled around with it, intermediate pitches were always computed
against those six M, so there will always 2 m to the M, or E12.

No, because Lilypond also preserves the number of scale steps.  At
least, it should.

I attach what I wrote for E36. There seems to be two systems, but they keep the ratio M/m = 2.

The difference to E53 is probably small, but it is still a fix, and not the
real thing.

Yes, when it comes to the MIDI output, if you think E53 is "the real
thing" for Turkish music.

E53 has narrow m's which makes it approximate 5th 3/2 well. That is what give it sound characteristics. Multiples of 12 don't do that.

I was then thinking about letting M, m being rational numbers, with 1 = the
octave, but that then only admits n-equal temperaments.

No.  It allows anything you like because you can make the rationals
arbitrarily precise.

One must be able to change the M/m ratio - without that, increasing approximation does not help.

Then I made the diatonic key map, and used it for active playing, led me to think it right. And it is simpler to store integers than rational numbers in
a computer.

Don't worry.  Lilypond is quite capable of storing rational numbers.

It is much faster to compute fixed size integral types, regardless if you think it necessary.

The m M model I gave, I think makes the most of the Western notation system
- it is what it actually notates. And it focuseS on musical function,
writing notes, not pitches, the latter that can vary with interpretation.

Exactly the same way Lilypond's model does.

Only that is seems fixed to E12 or E24 when defining key signatures.

Even if the pitch specifications were accurate,
they'd have to be converted to pitch bends.

Even this may not work correctly, because a pitch bend may require change in tone color (timbre). When playing say E31 in Scala, I noticed on some sound
patches changing erratic in timbre.

I was short changing MIDI a bit.  You could use single note retuning
messages from the MIDI Tuning Standard.  Scala can do this and some
synthesizers do support it.  Lilypond, however, uses pitch bends.

If the sound patch can handle it. It is possible in Timidity, though.

Then all kinds of
problems come in.  Most of the time it's simpler to talk of "half
steps" and program the synthesizer to do the tuning.

So therefore I think that MIDI is not a suitable format for a microtonal output, leading to the idea of an intermediate formate that can preserve the
original diatonic structure.

If you don't think MIDI's suitable, quit bugging the Lilypond
developers about their MIDI output.  You could learn to parse the
Lilypond format.  Or develop your own format and process it to make
Lilypond one of the intermediates.  What makes you think some other
format (which you haven't begun to specify) would be magically easier
to work with?

I already discussed those options with Manuel Op de Coul - too complicated.

Csound is probably much better - though I could not get it working on Mac OS
X. :-)

Csound is lousy for representing staff notation because it does rhythm
differently.

What are your problems?  I did some work on this for Tiger and I still
have a spare machine running it that I can test on.  There's a call
for testers on the Csound list.  That's the proper place to discuss
this.

I don't remember, must try again some time.

Is there a way of using the
Lilypond parser and writing different output? If you have patches to
make Lilypond do what you want that's something you could show the
developers.

Once one has written a MIDI file, then the information needed for retuning is lost, as one needs to know the underlying diatonic structure, and the difference between frequency and pitch bend. Also, there is the problem of
scale stretch on inharmonic instruments, like plucked strings.

That doesn't answer my question.

Scale stretch is not a problem here.  You can apply scale stretch to
the MIDI output.

If retuned, E12 enharmonic equivalences no longer apply. So one must first decide which sharps and flats to use, which only works if notes like F# and Gb both appear.

But I think LilyPond should make its own format that optimizes the
information that can the Western notation notation system produces. Also SCala tend to treat scales as pitches. So therefore it might to convert to
Scala files from another format.

Yes, Lilypond has its own format already.  It does what you want.

So then just write it. Direct processing .ly files is too complictaed.

I think there are at least three ways to notate chromatic runs, and I do not know which ones work in LilyPond. Looking into scores of older music, 19th century or older (like Beethoven's "Für Elise" suggest one can take meantone tuning accidentals and stick to that, that is, one chooses 12 pitches to the
octave with a transposition jump somewhere, called a "wolf".

Then one might make a transposed version of that, say taking all pitches of
major and minor scales one fifth up and down. In key A, that would be
 A Bb B C C# D D# E F F# G G#
This requires that one is knows the key A. I do not know if that is done, but those are the pitches in the chromatic runs in a score of Für Elise.

If you don't know what it does how do you know there's a problem?

I do not know what you mean with problem - there is just sheet music handed down.

Finally, one can notate in E12, just minimizing the number of accidentals
needed, so it is different going up and down.

Yes.  That would be chromatic transposition.  I can't see a way to
specify it in Lilypond.  So what does Lilypond actually do?

Do not know.

And engravers in the past may have simply changed it enharmonically, so
scores may not be reliable.

Absolutely.  If you want to know the original accidentals you need a
critical edition.

If the music has abstract combinations instead of pitches, what is
Lilypond supposed to do about it?

It should extract the octave, note name, accidental (possibly look up for called for enharmonic equivalences), and then typeset that. There is an easy
way to do that.

Yes, that's exactly what it does.

First compute the scale degree p + q, and compute the octave and note name by dividing by 7: octave is the fraction, remainder the note name. Then subtract octave and note name from p m + q M; the result is of the form (-r)m + r M, where r if > 0 is the number of sharps, and if < 0, the number
of flats is -r.

Or it could do what it already does.

So what does it do. Does it generalize?

How else do you suggest that be done?  You can write a function
that converts from your chosen units into fractions of a whole tone
with whatever precision you choose.

Only if one knows m and M in advance, and it will generally destroy the
musical structure.

If you don't know M and m in advance, how is Lilypond supposed to
guess them?  What's the problem with the musical structure?

LilyPond should not care about them unless explicitly called for. One is situation is computing enharmonic equivalences. But most music is typeset diatonically, only calling for enharmonic equivalence in certain situations.
The other is when producing a sound output.

Right, so to compute enharmonic equivalences you need to know M and m
in advance.

Music may do enharmonic equivalence as a notational simplification, too, in which case m and M need not be known. There will be a small jump in the music, but performers will cope with that. Even dedicated E12 music may actually be performed in something else - somebody measured up that some Shoenberg piece was actually performed in Pythagorean tuning.

To produce sound output you need to know M an m in
advance.  If you're not doing either of these things the values of M
and m don't matter so neither does it matter if they're wrong.

In advance of producing the sound output, but in advance of the typeset output only if the piece is tied to a specific tuning.

That's why you have init files.  Supply a different init file, or
alter the tuning specifications.

The notation does normally tell what the tuning should be, so one would want to retune it, even if the typeset output is the same. Think of an archive with Medieval tunes - as it is now, they MIDI files will be in E12. But in
those times one used E53. And if set in E53, they may not work with
instruments in E12.

Yes, so change the init file. Why are we going around in circles here?

Perhaps you are stuck to the same idea, and repeating.

The problem is what the official version are. If the official version sets a
specific tuning, then it is not possible to change that.

Yes, it is possible to change it, by changing the init file.

If you have the original .ly file.

Sorry, typo: if the sound output is in E12, then it cannot be retuned
without the underlying diatonic structure.

So don't retune the sound output.  Retune the Lilypond input.

The all tuning capabilities lies on LilyPond.

It depends on how the pitches are specified, which depends on the init file. If a half-sharp above C is the same as a half-flat below C# you may as well say so. If you want them distinguished you have to write
an init file that gives them different names.  Given that, the music
can easily be retuned so that the two pitches are different. And the
two pitches can be written differently.

The problem was that even if one gives them different names, LilyPond seems to compute them by checking nearest offset to the six M's. So if they are set in E24, then such confusion can arise. - I do not know if this is the
way, or how, LilyPond is computing intermediate pitches.

If they're set in E24, then E24 should be what you want.  Otherwise,
change the init file.

That is not how it is in Arab music. It uses symbols from E24, but there is no general agreement what tuning to use. The LilyPond model is flawed, though possible to tweak.

  Hans

Attachment: maqam36.ly
Description: Binary data


reply via email to

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