lilypond-devel
[Top][All Lists]
Advanced

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

Re: Diatonic notation system


From: Graham Breed
Subject: Re: Diatonic notation system
Date: Tue, 9 Dec 2008 12:00:41 +0800

2008/12/8 Hans Aberg <address@hidden>:
> On 8 Dec 2008, at 05:20, 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.  If you can find examples where that fails (and you
didn't specifically ask for a chromatic transposition) I think you can
call it a bug.  As it is, Lilypond uses 12 chromatic and 7 diatonic
steps to the octave -- a system that's mathematically identical to the
one you propose.  But it also allows sharps and flats to be divided to
get some other systems.

> In the Turkish file, M is divided into 9 parts I recall, but that makes 6*9
> = 54 divisions to the octave. But then each m gets 4.5 parts, so in effect,
> one is in E108.

Yes, when it comes to the MIDI output.

> 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.

> 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.

> 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.

> 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.

>> 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.

>> 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?

> 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.

>> 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 fro 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.

> 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.

> 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?

> 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?

> 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.

>>>> 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.  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.

>> 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?

> 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.

> 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.

>> 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.


                           Graham

reply via email to

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