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()); }