tonal-interval
Advanced tools
Comparing version 1.0.0-pre4 to 1.0.0-pre5
@@ -49,3 +49,19 @@ 'use strict'; | ||
var CLASSES = [0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]; | ||
var NAMES = "1P 2m 2M 3m 3M 4P 5P 6m 6M 7m 7M 8P".split(" "); | ||
/** | ||
* List basic (perfect, major, minor) interval names within a octave | ||
* @param {String} types - (Optional, default "PMm") the valid types | ||
* @return {Array} the interval names | ||
* @example | ||
* tonal.interval.names() // => [ '1P', '2m', '2M', '3m', '3M', '4P', '5P', '6m', '6M', '7m', '7M', '8P' ] | ||
* tonal.interval.names("P") // => [ '1P', '4P', '5P', '8P' ] | ||
* tonal.interval.names("PM") // => [ '1P', '2M', '3M', '4P', '5P', '6M', '7M', '8P' ] | ||
* tonal.interval.names("Pm") // => [ '1P', '2m', '3m', '4P', '5P', '6m', '7m', '8P' ] | ||
* t.interval.names("d") // => [] | ||
*/ | ||
var names = function (types) { return typeof types !== "string" | ||
? NAMES.slice() | ||
: NAMES.filter(function (n) { return types.indexOf(n[1]) !== -1; }); }; | ||
var tokenize = function (str) { | ||
@@ -322,2 +338,3 @@ var m = REGEX.exec(str); | ||
exports.names = names; | ||
exports.tokenize = tokenize; | ||
@@ -324,0 +341,0 @@ exports.props = props; |
@@ -45,3 +45,19 @@ /** | ||
var CLASSES = [0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]; | ||
var NAMES = "1P 2m 2M 3m 3M 4P 5P 6m 6M 7m 7M 8P".split(" "); | ||
/** | ||
* List basic (perfect, major, minor) interval names within a octave | ||
* @param {String} types - (Optional, default "PMm") the valid types | ||
* @return {Array} the interval names | ||
* @example | ||
* tonal.interval.names() // => [ '1P', '2m', '2M', '3m', '3M', '4P', '5P', '6m', '6M', '7m', '7M', '8P' ] | ||
* tonal.interval.names("P") // => [ '1P', '4P', '5P', '8P' ] | ||
* tonal.interval.names("PM") // => [ '1P', '2M', '3M', '4P', '5P', '6M', '7M', '8P' ] | ||
* tonal.interval.names("Pm") // => [ '1P', '2m', '3m', '4P', '5P', '6m', '7m', '8P' ] | ||
* t.interval.names("d") // => [] | ||
*/ | ||
export var names = function (types) { return typeof types !== "string" | ||
? NAMES.slice() | ||
: NAMES.filter(function (n) { return types.indexOf(n[1]) !== -1; }); }; | ||
export var tokenize = function (str) { | ||
@@ -48,0 +64,0 @@ var m = REGEX.exec(str); |
17
index.js
@@ -45,3 +45,20 @@ /** | ||
const CLASSES = [0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]; | ||
const NAMES = "1P 2m 2M 3m 3M 4P 5P 6m 6M 7m 7M 8P".split(" "); | ||
/** | ||
* List basic (perfect, major, minor) interval names within a octave | ||
* @param {String} types - (Optional, default "PMm") the valid types | ||
* @return {Array} the interval names | ||
* @example | ||
* tonal.interval.names() // => [ '1P', '2m', '2M', '3m', '3M', '4P', '5P', '6m', '6M', '7m', '7M', '8P' ] | ||
* tonal.interval.names("P") // => [ '1P', '4P', '5P', '8P' ] | ||
* tonal.interval.names("PM") // => [ '1P', '2M', '3M', '4P', '5P', '6M', '7M', '8P' ] | ||
* tonal.interval.names("Pm") // => [ '1P', '2m', '3m', '4P', '5P', '6m', '7m', '8P' ] | ||
* t.interval.names("d") // => [] | ||
*/ | ||
export const names = types => | ||
typeof types !== "string" | ||
? NAMES.slice() | ||
: NAMES.filter(n => types.indexOf(n[1]) !== -1); | ||
export const tokenize = str => { | ||
@@ -48,0 +65,0 @@ const m = REGEX.exec(str); |
{ | ||
"name": "tonal-interval", | ||
"version": "1.0.0-pre4", | ||
"version": "1.0.0-pre5", | ||
"description": "Music interval creation and manipulation", | ||
@@ -5,0 +5,0 @@ "repository": "https://github.com/danigb/tonal/packages/interval", |
@@ -39,2 +39,3 @@ <a name="module_interval"></a> | ||
* [interval](#module_interval) | ||
* [`.names`](#module_interval.names) ⇒ <code>Array</code> | ||
* [`.props(interval)`](#module_interval.props) ⇒ <code>Object</code> | ||
@@ -52,2 +53,22 @@ * [`.num(interval)`](#module_interval.num) ⇒ <code>Integer</code> | ||
<a name="module_interval.names"></a> | ||
## `interval.names` ⇒ <code>Array</code> | ||
List basic (perfect, major, minor) interval names within a octave | ||
**Kind**: static constant of [<code>interval</code>](#module_interval) | ||
**Returns**: <code>Array</code> - the interval names | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| types | <code>String</code> | (Optional, default "PMm") the valid types | | ||
**Example** | ||
```js | ||
tonal.interval.names() // => [ '1P', '2m', '2M', '3m', '3M', '4P', '5P', '6m', '6M', '7m', '7M', '8P' ] | ||
tonal.interval.names("P") // => [ '1P', '4P', '5P', '8P' ] | ||
tonal.interval.names("PM") // => [ '1P', '2M', '3M', '4P', '5P', '6M', '7M', '8P' ] | ||
tonal.interval.names("Pm") // => [ '1P', '2m', '3m', '4P', '5P', '6m', '7m', '8P' ] | ||
t.interval.names("d") // => [] | ||
``` | ||
<a name="module_interval.props"></a> | ||
@@ -54,0 +75,0 @@ |
@@ -16,2 +16,11 @@ var ivl = require("../index"); | ||
test("names", () => { | ||
expect(ivl.names()).toEqual($("1P 2m 2M 3m 3M 4P 5P 6m 6M 7m 7M 8P")); | ||
expect(ivl.names("P")).toEqual($("1P 4P 5P 8P")); | ||
expect(ivl.names("PM")).toEqual($("1P 2M 3M 4P 5P 6M 7M 8P")); | ||
expect(ivl.names("Pm")).toEqual($("1P 2m 3m 4P 5P 6m 7m 8P")); | ||
expect(ivl.names("m")).toEqual($("2m 3m 6m 7m")); | ||
expect(ivl.names("d")).toEqual([]); | ||
}); | ||
test("num", () => { | ||
@@ -18,0 +27,0 @@ const pos = [1, 2, 3, 4, 5, 6, 7]; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
48400
1083
289
0