UNPKG

note-to-frequency

Version:

🎼 converts a note (scientific pitch notation) to a frequency

39 lines (28 loc) • 1.2 kB
'use strict'; exports.__esModule = true; var _validateNote2 = require('validate-note'); var _validateNote3 = _interopRequireDefault(_validateNote2); var _getPosition = require('./lib/getPosition'); var _getPosition2 = _interopRequireDefault(_getPosition); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (note) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$base = _ref.base, base = _ref$base === undefined ? 440 : _ref$base, _ref$maxOctave = _ref.maxOctave, maxOctave = _ref$maxOctave === undefined ? 8 : _ref$maxOctave; var _validateNote = (0, _validateNote3.default)(note, { flatToSharp: true, maxOctave: maxOctave, octave: true }), letter = _validateNote.letter, octave = _validateNote.octave, signature = _validateNote.signature; var pos = (0, _getPosition2.default)(letter, octave, signature); var basePos = (0, _getPosition2.default)('A', 4); var diff = pos - basePos; var a = Math.pow(2, 1 / 12); return Math.round(base * Math.pow(a, diff) * 100) / 100; }; module.exports = exports['default'];