react-orchestra
Version:
A toolbox to build interactive and smart instruments on the web and mobile.
34 lines (28 loc) • 1.1 kB
JavaScript
exports.__esModule = true;
var _NOTES = require('../constants/NOTES');
var _NOTES2 = _interopRequireDefault(_NOTES);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* reorder a set of notes such that it starts with the firstNote
* @function
* @name reOrderNotes
* @param {string} firstNote
* @param {array} notes
* @example
* reOrderNotes('A' , ['C', 'B', 'A']) // returns ['A', 'B', 'C']
* reOrderNotes('B') // returns ['B', 'C', 'D', 'E', 'F', 'G', 'A']
* @return {boolean} isInHigherOctave
*/
var reOrderNotes = function reOrderNotes(startingNote) {
var notes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _NOTES2.default;
var startingNoteIndex = notes.indexOf(startingNote);
var reorderedNotes = [];
for (var i = startingNoteIndex; i < notes.length + startingNoteIndex; i += 1) {
var currentNoteIndex = i % notes.length;
reorderedNotes.push(notes[currentNoteIndex]);
}
return reorderedNotes;
}; /* mod */
exports.default = reOrderNotes;
module.exports = exports['default'];
;