By separating note names and accidentals, we can create a system where we can even change which accidentals are available (or even note names), and the system still ends up working for a situation. Since note names and accidentals always have the same value, I doesn’t mean either we can’t redefine them if necessary (most of the time, we don’t need that, of course).
I just thought about equal temperament systems, but I believe this is also true for other systems.
There is the issue of enharmony. But this cannot be solved with a general rule: each user must choose which direction he wants to use.
In the simplest case, the user can choose “preferFlats” or “preferSharps”.
Or, “I prefer the closest note to a note without accidentals.” EXAMPLE with 72ET:
Let’s say we want to work with a wide range of micro-tonal intervals (72ET); the base for the alterations will be the same seven notes. For example"
[Flat,Natural,Sharp,QuarterFlat,QuarterSharp,ThreeQuartersFlat,ThreeQuartersSharp,DoubleSharp,DoubleFlat,ThirdSharp,ThirdFlat,SixthSharp,SixthFlat,TwelfthSharp,TwelfthFlat,EighthSharp,EighthFlat,FiveTwelfthsSharp,FiveTwelfthsFlat,SevenTwelfthsSharp,SevenTwelfthsFlat,FiveSixthsSharp,FiveSixthsFlat,ElevenTwelfthsSharp,ElevenTwelfthsFlat,TwoThirdsSharp,TwoThirdsFlat,ThreeEighthsSharp,ThreeEighthsFlat]
With a list comprehensions, we can create all possible pitchclasses:
allPC = [createPitchClass n a | n <- [C .. B], a <- accidentals]
Two notes match the PitchClass (10/3) E Third Flat and F Five Sixths Flat, because (4 + (-2)%3) == (5 + (-5)%3)
>>> filterNotesWithPitchClassVal allPC (10%3)
[PitchClass {_noteName = E, _accidental = Accidental {_accName = ThirdFlat, _accAbbreviation = "rf", _accArrow = Nothing, _accSemitones = (-2) % 3}},PitchClass {_noteName = F, _accidental = Accidental {_accName = FiveSixthsFlat, _accAbbreviation = "fxf", _accArrow = Nothing, _accSemitones = (-5) % 3}}]
In that case, the note closest to a note without accidentals can be chosen. Or not, we can think of other rules appropriate to a context.
It’s hard to think of all the possibilities, but the less we assume, the better.
I can even imagine a case where one would need extra note names, like J
in Bohlen–Pierce scale.