private void mapNoteNames() {
   for (int i = 1; i < 12; i++) {
     for (NoteReference note : NoteReference.values()) {
       int noteNumber = note.getBaseNumber() + (octave[i] * 12);
       noteNameMap.put(note.getBaseName() + range[i], noteNumber);
     }
   }
 }
 /*
  * method to create a map of Note numbers to Note Names Numbers
  *	to get a note number out of the map use something like:
  *		String[] noteNumberArray = midiNote.getNoteNumberArray();
  *			println(noteNumberArray[60]);
  *			println(noteNumberArray[2]);
  *	  		println(noteNumberArray[127]);
  *
  * Intentionally using a simple array here for performance reasons
  */
 private void mapNoteNumbers() {
   String noteName;
   int octaveValue;
   for (int i = 1; i < 11; i++) {
     octaveValue = octave[i] * 12;
     for (NoteReference note : NoteReference.values()) {
       // if  the note name contains a "flat" then it has the identical note number
       // as the previous flat, decrement the total note number count and insert into
       // the array a string made up of both the previous notes name and the current one
       if (note.getBaseName().contains("b")) {
         String previous = noteNumberArray[note.getBaseNumber() + octaveValue];
         noteName = previous + "/" + note.getBaseName() + range[i];
       } else {
         noteName = note.getBaseName() + range[i];
       }
       noteNumberArray[note.getBaseNumber() + octaveValue] = noteName;
     }
   }
 }
 /**
  * Create a int[] chord using an NoteReference and an int[] chord using octave 0
  *
  * @see MidiReference#createChord(int, int[])
  * @param noteRef
  * @param chordDegrees
  * @return int[] chord
  */
 public int[] createChord(NoteReference noteRef, int[] chordDegrees) {
   return createChord(noteRef.getBaseNumber(), chordDegrees, 0);
 }
 /**
  * Create a int[] chord using an NoteReference and ChordReference
  *
  * @see MidiReference#createChord(int, int[], int)
  * @param noteRef
  * @param chordRef
  * @param octave
  * @return int[] chord
  */
 public int[] createChord(NoteReference noteRef, ChordReference chordRef, int octave) {
   return createChord(noteRef.getBaseNumber(), chordRef.getDegrees(), octave);
 }
 /**
  * Create a scale from a NoteReference and a ScaleReference
  *
  * @see MidiReference#createScale(int[], int)
  * @param baseScale
  * @param baseNote
  * @return int[] scale
  */
 public static int[] createScale(ScaleReference baseScale, NoteReference baseNote) {
   return createScale(baseScale.getDegrees(), baseNote.getBaseNumber());
 }
 /**
  * Create a scale from a NoteReference and int[] scale degrees
  *
  * @see MidiReference#createScale(int[], int)
  * @param scaleDegrees
  * @param baseNote
  * @return int[] scale
  */
 public int[] createScale(int[] scaleDegrees, NoteReference baseNote) {
   return createScale(scaleDegrees, baseNote.getBaseNumber());
 }