Does anybody know of anything that exists in the Java world to map midi note numbers to specific note names and octave numbers. For example, see the reference table:
http://www.harmony-central.com/MIDI/Doc/table2.html
I want to map a midi note number 60 to it’s corresponding note name (MiddleC) in octave 4. I could write a utility class/enum for this, but it would be rather tedious. Does anybody know of anything?
I’m specifically using this to write a Tenori-On/Monome clone in Java, so far so good…
Solution
This was what I ended up using:
String[] noteString = new String[] { 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B' }; int octave = (initialNote / 12) - 1; int noteIndex = (initialNote % 12); String note = noteString[noteIndex];
I’m not convinced your suggestion is that tedious. It’s really just a divide-and-modulo operation, one gets the octave, the other gets the note.
In real Java, as opposed to that pseudo-code above, you can use something like: