It's more extensible because, if you decide you need more enharmonic notes included in the data structure, you can easily add them. For example:
...
b,-1,59,246.9416506281
c♭¹,-1,59,246.9416506281
b♯,0,60,261.6255653006
c¹,0,60,261.6255653006
d𝄫¹,0,60,261.6255653006
c♯¹,0,61,277.1826309769
d♭¹,0,61,277.1826309769
c𝄪¹,0,62,293.6647679174
d¹,0,62,293.6647679174
e𝄫¹,0,62,293.6647679174
...
It's also more extensible because it's a hash of a hash. More MIDI attributes can easily be added to the existing data structure as needed (e.g., absolute cents).
(By the way, on the webpage titled MIDI Note Number and Frequency Table, there's at least one error. The frequency of MIDI note number 115, g⁵, is 6271.9269757080, not 5919.9107633862.)
| [reply] |
"It's more extensible..."
Hi Jim,
sure, this is right - no doubt.
But don't you think that a "compound identifier" comes in more handy if you do the reverse mapping from Midi to Helmholtz like %midi_to_helmholtz = ( 70 => "a$sharp\/b$flat" );?
Best regards, Karl
P.S.: I skip the HoH approach for the moment, it is not the problem.
«The Crux of the Biscuit is the Apostrophe»
| [reply] [d/l] |
If maintaining a one-to-one relationship of %helmholtz_to_midi keys to %midi_to_helmholtz keys is an important requirement, then, yes, you have to do something kludgy like use a compound identifier. For example:
$helmholtz_to_midi{'a♯¹/b♭¹'}{midi_note_number} = 70;
and
$midi_to_helmholtz{'70'}{helmholtz_note_name} = 'a♯¹/b♭¹';
But the inescapable musical fact remains: there isn't a one-to-one relationship of MIDI note numbers to Helmholtz note names. There's a one-to-many relationship, just as there's a one-to-many relationship of pitches (440 Hz) to enharmonic notes (g𝄪¹, a¹, b𝄫¹).
| [reply] [d/l] [select] |
Update/clarification: Since MIDI notation does not directly support enharmonics, one way this can be emulated is via after touch. Even if the MIDI is not sent to a synth (hardware or software), the nuance can still be represented (even if imperfectly).
To add subtlety the notes, After touch can be used on some synths. (Pitch Bend applies to all notes on a channel while After Touch applies to a specific note.)
| [reply] |
| [reply] |