lilypond-devel
[Top][All Lists]
Advanced

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

Re: Towards a new pitch representation


From: Felipe Gonçalves Assis
Subject: Re: Towards a new pitch representation
Date: Thu, 30 Dec 2010 19:16:39 -0300

So, first question

1. How should we represent alterations?

It is clear to me that the most general representation would be as
a list of integers of arbitrary length (see sections 1 and 2 of the
attachment).

However, a fixed length list might be more realistic. In my patch,
I opted for a pair of integers, which is enough to solve 1278.

The enhancement request mentions "many other microtonal
notations beyond arrow notation for quarter-tones". Advice from
anyone acquainted with microtonal notations is needed here.

Then we come to

1.1. How do we implement the mapping from alterations to tones?

A simple idea is to replace the list of integers by a list of rationals,
corresponding to the value of the alteration in tones. This is the
current approach, except for the fact that the list has length 1.

In this case, the alteration of cesih would be described as (-1/2 . +1/4).

One advantage is that this just extends the current version, allowing
existing code (both from the software and from users) to be supported
without modification (just make some arguments optional).

Alternatively, we can separate the Tuning System from the alteration
algebra, and realize this map as a function in the program, preferentially
configurable.

This is what I tried in my patch, using class Scale for that, which works
fine, and makes some sense, but I am completely open to suggestions here.

The advantage of this approach over the previous one is that it makes
the group structure of alterations more evident, and the operations cheaper.
On the other hand, some people might dislike the fact that the default-scale
has to be redefined in, e.g., ly/makam.ly.

I look forward to hearing from you.

Kind regards,
Felipe

Attachment: towards123.txt
Description: Text document


reply via email to

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