jsbean / PitchSpelling

Repository containing musings related to the eighth-tone pitch spelling algorithm that shan't die.
MIT License
1 stars 1 forks source link

Develop a naming system for microtonal intervals. #8

Open mossheim opened 8 years ago

mossheim commented 8 years ago

Looking at the Wiki page, it seems there are several terms that might be of use:

I could see a quarter-tone naming convention that works like this:

I could even see an eighth-tone convention that combines all of the terms like this:

This system has the benefit of being clean and fairly logical: 'super' is only added to intervals greater than perfect/neutral, and 'sub' is only added to intervals less than. it also has the benefit of using common music/tuning theory prefixes. I can see there being confusion around the use of semi- to indicate a quarter-tone step while super-/sub- indicate eighth-tone steps.

I think beyond diminished and augmented it makes sense to just give the decimal or fraction by which the interval exceeds the major/minor and perfect sizes. For instance, C to F# up would be a 1.25-augmented fourth, and D# up to Ed would be a 1.75-diminished second.

I'm very open to your thoughts on this--music terminology is an awful awful place and I don't want or need to get into an argument over it.

Regarding the indications for whether or not an interval uses eighth-tone arrows in its spelling, I think it would be really helpful if you could just outline the motivation for that again please?

jsbean commented 8 years ago

This is looking really nice. I am going to do some thinking on my end on how to implement this in the most concise yet flexible way.

jsbean commented 8 years ago

Regarding the indications for whether or not an interval uses eighth-tone arrows in its spelling, I think it would be really helpful if you could just outline the motivation for that again please?

Consider the non-equivalent cases:

Unless there is a magnitude for the eighth-step modifier, these PitchSpelling values would be equivalent, even though they represent non-equivalent Pitch or PitchClass values.

jsbean commented 8 years ago

This could potentially make the evaluation of eighth-step intervals more logically intuitive in the pitch spelling algorithm.

Instead of asking whether the arrow direction is compatible, which seems to dip into a kind of implementation space, we could ask whether or not interval.eighthStep.degree > 1, which seems the slightest bit more abstract.

This would save (at least how I had implemented things thus far), a variable called isFineCompatible for the predecessor to NamedInterval, which contained a lot of logic that didn't feel like it was operating on the right level of abstraction, but it could smell that the proper level of abstraction existed.

mossheim commented 8 years ago

Instead of asking whether the arrow direction is compatible, which seems to dip into a kind of implementation space, we could ask whether or not interval.eighthStep.degree > 1, which seems the slightest bit more abstract.

Okay, I think I'm closer to understanding this now, but still a little unsure on when it would matter in other spaces like 16th or 12th tones. Am I getting it right? Maybe a better question to ask would be, how can this abstraction simplify future considerations?