tblswvs 0.18.0-beta.2 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/es5/helpers.d.ts +1 -1
- package/lib/es5/helpers.js +1 -1
- package/lib/es5/index.d.ts +1 -0
- package/lib/es5/index.js +1 -0
- package/lib/es5/index.js.map +1 -1
- package/lib/es5/melodic_vector.js +1 -1
- package/lib/es5/melodic_vector.js.map +1 -1
- package/lib/es5/melody.d.ts +1 -2
- package/lib/es5/melody.js +2 -3
- package/lib/es5/melody.js.map +1 -1
- package/lib/es5/mutation.d.ts +2 -0
- package/lib/es5/mutation.js +19 -0
- package/lib/es5/mutation.js.map +1 -1
- package/lib/es6/helpers.js +1 -1
- package/lib/es6/index.js +1 -0
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/melodic_vector.js +1 -1
- package/lib/es6/melodic_vector.js.map +1 -1
- package/lib/es6/melody.js +2 -3
- package/lib/es6/melody.js.map +1 -1
- package/lib/es6/mutation.js +19 -0
- package/lib/es6/mutation.js.map +1 -1
- package/package.json +1 -1
package/lib/es5/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const NON_INTEGER_INPUTS = "Numbers must be integers";
|
|
2
2
|
export declare const SELF_SIMILARITY_REQUIRES_COPRIMES: string;
|
|
3
3
|
export declare const SCALE_DEGREE_ERROR = "Scale degrees must be negative or positive, but not 0";
|
|
4
|
-
export declare const SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a
|
|
4
|
+
export declare const SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a Melody with a Key";
|
|
5
5
|
export declare const KEY_REQUIRED_FOR_MUTATION = "Mutations require a Melody object with a key";
|
|
6
6
|
export declare const unique: (value: any, index: number, self: any) => boolean;
|
|
7
7
|
export declare const areCoprime: (num1: number, num2: number) => boolean;
|
package/lib/es5/helpers.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.NON_INTEGER_INPUTS = "Numbers must be integers";
|
|
|
6
6
|
exports.SELF_SIMILARITY_REQUIRES_COPRIMES = "A self-similar melody can only be produced for an input sequence length " +
|
|
7
7
|
"that is coprime with the output sequence length";
|
|
8
8
|
exports.SCALE_DEGREE_ERROR = "Scale degrees must be negative or positive, but not 0";
|
|
9
|
-
exports.SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a
|
|
9
|
+
exports.SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a Melody with a Key";
|
|
10
10
|
exports.KEY_REQUIRED_FOR_MUTATION = "Mutations require a Melody object with a key";
|
|
11
11
|
const unique = (value, index, self) => {
|
|
12
12
|
return self.indexOf(value) === index;
|
package/lib/es5/index.d.ts
CHANGED
package/lib/es5/index.js
CHANGED
|
@@ -21,6 +21,7 @@ __exportStar(require("./melodic_vector"), exports);
|
|
|
21
21
|
__exportStar(require("./rhythm"), exports);
|
|
22
22
|
__exportStar(require("./lindenmayer_system"), exports);
|
|
23
23
|
__exportStar(require("./markov_chain"), exports);
|
|
24
|
+
__exportStar(require("./mutation"), exports);
|
|
24
25
|
__exportStar(require("./helpers"), exports);
|
|
25
26
|
__exportStar(require("./note_data"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/lib/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,wCAAsB;AACtB,mDAAiC;AACjC,2CAAyB;AACzB,uDAAqC;AACrC,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,wCAAsB;AACtB,mDAAiC;AACjC,2CAAyB;AACzB,uDAAqC;AACrC,iDAA+B;AAC/B,6CAA2B;AAC3B,4CAA0B;AAC1B,8CAA4B"}
|
|
@@ -39,7 +39,7 @@ class MelodicVector {
|
|
|
39
39
|
// First generate an array of steps that will match the melody's length.
|
|
40
40
|
const size = Math.ceil((melody.notes.length / this.steps.length));
|
|
41
41
|
const expandedSteps = new Array(size).fill(this.steps).flat().slice(0, melody.notes.length);
|
|
42
|
-
// Create a copy of the melody so that the rest symbol
|
|
42
|
+
// Create a copy of the melody so that the rest symbol is carried forward.
|
|
43
43
|
// Then apply the vector addition.
|
|
44
44
|
const transformedMelody = melody.clone();
|
|
45
45
|
expandedSteps.forEach((step, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"melodic_vector.js","sourceRoot":"","sources":["../../../src/melodic_vector.ts"],"names":[],"mappings":";;;AAEA,qCAAqC;AACrC,mDAA+C;AAG/C;;;;;;;;GAQG;AACH,MAAa,aAAa;IAKtB;;;;OAIG;IACH,YAAY,KAAe,EAAE,SAA4B;QARzD,cAAS,GAAqB,MAAM,CAAC;QASjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,CAAC;IAGD;;;;;;OAMG;IACH,OAAO,CAAC,MAAc;QAClB,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;YACtD,MAAM,IAAI,4BAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SACnE;aAAM;YACH,wEAAwE;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5F,
|
|
1
|
+
{"version":3,"file":"melodic_vector.js","sourceRoot":"","sources":["../../../src/melodic_vector.ts"],"names":[],"mappings":";;;AAEA,qCAAqC;AACrC,mDAA+C;AAG/C;;;;;;;;GAQG;AACH,MAAa,aAAa;IAKtB;;;;OAIG;IACH,YAAY,KAAe,EAAE,SAA4B;QARzD,cAAS,GAAqB,MAAM,CAAC;QASjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,CAAC;IAGD;;;;;;OAMG;IACH,OAAO,CAAC,MAAc;QAClB,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;YACtD,MAAM,IAAI,4BAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SACnE;aAAM;YACH,wEAAwE;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5F,0EAA0E;YAC1E,kCAAkC;YAClC,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACzC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;;gBAE9B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE;oBAChC,aAAa;iBAChB;qBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE;oBACjC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAExC,MAAM,cAAc,GAAG,MAAA,iBAAiB,CAAC,GAAG,0CAAE,UAAU,CAAC,OAAO,CAAC,MAAA,iBAAiB,CAAC,GAAG,0CAAE,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBACvJ,IAAI,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,CAAC,CAAC;wBACnD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;;wBAEnD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;iBAEnE;qBAAM;oBACH,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oBACrE,gBAAgB,GAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBACtF,MAAM,OAAO,GAAG,MAAA,iBAAiB,CAAC,GAAG,0CAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;oBAChE,IAAI,OAAO,IAAI,SAAS;wBAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;iBAClE;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,iBAAiB,CAAC;SAC5B;IACL,CAAC;CACJ;AA1DD,sCA0DC"}
|
package/lib/es5/melody.d.ts
CHANGED
|
@@ -2,8 +2,7 @@ import { note } from "./note_data";
|
|
|
2
2
|
import { Key } from "./key";
|
|
3
3
|
/**
|
|
4
4
|
* The Melody class represents the primary melodic object. A melody has steps that are intended to represet
|
|
5
|
-
* a sequence of notes and rests.
|
|
6
|
-
* MelodyType enum.
|
|
5
|
+
* a sequence of notes and rests.
|
|
7
6
|
*/
|
|
8
7
|
export declare class Melody {
|
|
9
8
|
notes: note[];
|
package/lib/es5/melody.js
CHANGED
|
@@ -6,8 +6,7 @@ const helpers = require("./helpers");
|
|
|
6
6
|
const rhythm_1 = require("./rhythm");
|
|
7
7
|
/**
|
|
8
8
|
* The Melody class represents the primary melodic object. A melody has steps that are intended to represet
|
|
9
|
-
* a sequence of notes and rests.
|
|
10
|
-
* MelodyType enum.
|
|
9
|
+
* a sequence of notes and rests.
|
|
11
10
|
*/
|
|
12
11
|
class Melody {
|
|
13
12
|
constructor(notes, key) {
|
|
@@ -57,7 +56,7 @@ class Melody {
|
|
|
57
56
|
throw new tblswvs_error_1.TblswvsError(helpers.SELF_SIMILARITY_REQUIRES_COPRIMES);
|
|
58
57
|
let sequence = new Array(length).fill(-1);
|
|
59
58
|
sequence[0] = this.notes[0];
|
|
60
|
-
sequence[1] = this.notes[1];
|
|
59
|
+
sequence[1] = this.notes[1 % this.notes.length];
|
|
61
60
|
let contiguousSequence, currentNote, stepAmount, nextNote;
|
|
62
61
|
let nextEmpty = sequence.findIndex(note => note == -1), count = 2;
|
|
63
62
|
// Build a self replicating melody by powers of 2 until all notes are filled.
|
package/lib/es5/melody.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"melody.js","sourceRoot":"","sources":["../../../src/melody.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,qCAAqC;AAErC,qCAAkC;AAIlC
|
|
1
|
+
{"version":3,"file":"melody.js","sourceRoot":"","sources":["../../../src/melody.ts"],"names":[],"mappings":"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"}
|
package/lib/es5/mutation.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Melody } from "./melody";
|
|
2
2
|
export declare class Mutation {
|
|
3
|
+
static functionMap: Map<string, Function>;
|
|
4
|
+
static random(inputMelody: Melody, algorithms?: string[]): Melody;
|
|
3
5
|
static transposeDown2(inputMelody: Melody): Melody;
|
|
4
6
|
static reverse(inputMelody: Melody): Melody;
|
|
5
7
|
static rotateLeftThree(inputMelody: Melody): Melody;
|
package/lib/es5/mutation.js
CHANGED
|
@@ -6,6 +6,15 @@ const tblswvs_error_1 = require("./tblswvs_error");
|
|
|
6
6
|
const melodic_vector_1 = require("./melodic_vector");
|
|
7
7
|
const melody_1 = require("./melody");
|
|
8
8
|
class Mutation {
|
|
9
|
+
static random(inputMelody, algorithms) {
|
|
10
|
+
if (algorithms == undefined)
|
|
11
|
+
algorithms = Object.getOwnPropertyNames(Mutation).filter(func => !["length", "name", "prototype"].includes(func));
|
|
12
|
+
const algorithm = this.functionMap.get(algorithms[Math.floor(Math.random() * algorithms.length)]);
|
|
13
|
+
if (algorithm != undefined)
|
|
14
|
+
return algorithm(inputMelody);
|
|
15
|
+
else
|
|
16
|
+
return inputMelody;
|
|
17
|
+
}
|
|
9
18
|
static transposeDown2(inputMelody) {
|
|
10
19
|
return new melodic_vector_1.MelodicVector([-2], "scale").applyTo(inputMelody);
|
|
11
20
|
}
|
|
@@ -73,4 +82,14 @@ class Mutation {
|
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
exports.Mutation = Mutation;
|
|
85
|
+
Mutation.functionMap = new Map([
|
|
86
|
+
["transposeDown2", Mutation.transposeDown2],
|
|
87
|
+
["reverse", Mutation.reverse],
|
|
88
|
+
["rotateLeftThree", Mutation.rotateLeftThree],
|
|
89
|
+
["sort", Mutation.sort],
|
|
90
|
+
["reverseSort", Mutation.reverseSort],
|
|
91
|
+
["invert", Mutation.invert],
|
|
92
|
+
["invertReverse", Mutation.invertReverse],
|
|
93
|
+
["bitFlip", Mutation.bitFlip]
|
|
94
|
+
]);
|
|
76
95
|
//# sourceMappingURL=mutation.js.map
|
package/lib/es5/mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../src/mutation.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,mDAA+C;AAC/C,qDAAiD;AACjD,qCAAkC;
|
|
1
|
+
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../src/mutation.ts"],"names":[],"mappings":"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"}
|
package/lib/es6/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@ export const NON_INTEGER_INPUTS = "Numbers must be integers";
|
|
|
3
3
|
export const SELF_SIMILARITY_REQUIRES_COPRIMES = "A self-similar melody can only be produced for an input sequence length " +
|
|
4
4
|
"that is coprime with the output sequence length";
|
|
5
5
|
export const SCALE_DEGREE_ERROR = "Scale degrees must be negative or positive, but not 0";
|
|
6
|
-
export const SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a
|
|
6
|
+
export const SCALE_DEGREE_SHIFTS_REQUIRE_KEY = "Melodic vectors with shift mode 'scale' can only operate on a Melody with a Key";
|
|
7
7
|
export const KEY_REQUIRED_FOR_MUTATION = "Mutations require a Melody object with a key";
|
|
8
8
|
export const unique = (value, index, self) => {
|
|
9
9
|
return self.indexOf(value) === index;
|
package/lib/es6/index.js
CHANGED
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -36,7 +36,7 @@ export class MelodicVector {
|
|
|
36
36
|
// First generate an array of steps that will match the melody's length.
|
|
37
37
|
const size = Math.ceil((melody.notes.length / this.steps.length));
|
|
38
38
|
const expandedSteps = new Array(size).fill(this.steps).flat().slice(0, melody.notes.length);
|
|
39
|
-
// Create a copy of the melody so that the rest symbol
|
|
39
|
+
// Create a copy of the melody so that the rest symbol is carried forward.
|
|
40
40
|
// Then apply the vector addition.
|
|
41
41
|
const transformedMelody = melody.clone();
|
|
42
42
|
expandedSteps.forEach((step, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"melodic_vector.js","sourceRoot":"","sources":["../../../src/melodic_vector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAKtB;;;;OAIG;IACH,YAAY,KAAe,EAAE,SAA4B;QARzD,cAAS,GAAqB,MAAM,CAAC;QASjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,CAAC;IAGD;;;;;;OAMG;IACH,OAAO,CAAC,MAAc;QAClB,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;YACtD,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SACnE;aAAM;YACH,wEAAwE;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5F,
|
|
1
|
+
{"version":3,"file":"melodic_vector.js","sourceRoot":"","sources":["../../../src/melodic_vector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAKtB;;;;OAIG;IACH,YAAY,KAAe,EAAE,SAA4B;QARzD,cAAS,GAAqB,MAAM,CAAC;QASjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,CAAC;IAGD;;;;;;OAMG;IACH,OAAO,CAAC,MAAc;QAClB,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;YACtD,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SACnE;aAAM;YACH,wEAAwE;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5F,0EAA0E;YAC1E,kCAAkC;YAClC,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACzC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;;gBAE9B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE;oBAChC,aAAa;iBAChB;qBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE;oBACjC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAExC,MAAM,cAAc,GAAG,MAAA,iBAAiB,CAAC,GAAG,0CAAE,UAAU,CAAC,OAAO,CAAC,MAAA,iBAAiB,CAAC,GAAG,0CAAE,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBACvJ,IAAI,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,CAAC,CAAC;wBACnD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;;wBAEnD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;iBAEnE;qBAAM;oBACH,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oBACrE,gBAAgB,GAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBACtF,MAAM,OAAO,GAAG,MAAA,iBAAiB,CAAC,GAAG,0CAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;oBAChE,IAAI,OAAO,IAAI,SAAS;wBAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;iBAClE;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,iBAAiB,CAAC;SAC5B;IACL,CAAC;CACJ"}
|
package/lib/es6/melody.js
CHANGED
|
@@ -3,8 +3,7 @@ import * as helpers from "./helpers";
|
|
|
3
3
|
import { Rhythm } from "./rhythm";
|
|
4
4
|
/**
|
|
5
5
|
* The Melody class represents the primary melodic object. A melody has steps that are intended to represet
|
|
6
|
-
* a sequence of notes and rests.
|
|
7
|
-
* MelodyType enum.
|
|
6
|
+
* a sequence of notes and rests.
|
|
8
7
|
*/
|
|
9
8
|
export class Melody {
|
|
10
9
|
constructor(notes, key) {
|
|
@@ -54,7 +53,7 @@ export class Melody {
|
|
|
54
53
|
throw new TblswvsError(helpers.SELF_SIMILARITY_REQUIRES_COPRIMES);
|
|
55
54
|
let sequence = new Array(length).fill(-1);
|
|
56
55
|
sequence[0] = this.notes[0];
|
|
57
|
-
sequence[1] = this.notes[1];
|
|
56
|
+
sequence[1] = this.notes[1 % this.notes.length];
|
|
58
57
|
let contiguousSequence, currentNote, stepAmount, nextNote;
|
|
59
58
|
let nextEmpty = sequence.findIndex(note => note == -1), count = 2;
|
|
60
59
|
// Build a self replicating melody by powers of 2 until all notes are filled.
|
package/lib/es6/melody.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"melody.js","sourceRoot":"","sources":["../../../src/melody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC
|
|
1
|
+
{"version":3,"file":"melody.js","sourceRoot":"","sources":["../../../src/melody.ts"],"names":[],"mappings":"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"}
|
package/lib/es6/mutation.js
CHANGED
|
@@ -3,6 +3,15 @@ import { TblswvsError } from "./tblswvs_error";
|
|
|
3
3
|
import { MelodicVector } from "./melodic_vector";
|
|
4
4
|
import { Melody } from "./melody";
|
|
5
5
|
export class Mutation {
|
|
6
|
+
static random(inputMelody, algorithms) {
|
|
7
|
+
if (algorithms == undefined)
|
|
8
|
+
algorithms = Object.getOwnPropertyNames(Mutation).filter(func => !["length", "name", "prototype"].includes(func));
|
|
9
|
+
const algorithm = this.functionMap.get(algorithms[Math.floor(Math.random() * algorithms.length)]);
|
|
10
|
+
if (algorithm != undefined)
|
|
11
|
+
return algorithm(inputMelody);
|
|
12
|
+
else
|
|
13
|
+
return inputMelody;
|
|
14
|
+
}
|
|
6
15
|
static transposeDown2(inputMelody) {
|
|
7
16
|
return new MelodicVector([-2], "scale").applyTo(inputMelody);
|
|
8
17
|
}
|
|
@@ -69,4 +78,14 @@ export class Mutation {
|
|
|
69
78
|
}
|
|
70
79
|
}
|
|
71
80
|
}
|
|
81
|
+
Mutation.functionMap = new Map([
|
|
82
|
+
["transposeDown2", Mutation.transposeDown2],
|
|
83
|
+
["reverse", Mutation.reverse],
|
|
84
|
+
["rotateLeftThree", Mutation.rotateLeftThree],
|
|
85
|
+
["sort", Mutation.sort],
|
|
86
|
+
["reverseSort", Mutation.reverseSort],
|
|
87
|
+
["invert", Mutation.invert],
|
|
88
|
+
["invertReverse", Mutation.invertReverse],
|
|
89
|
+
["bitFlip", Mutation.bitFlip]
|
|
90
|
+
]);
|
|
72
91
|
//# sourceMappingURL=mutation.js.map
|
package/lib/es6/mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../src/mutation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../src/mutation.ts"],"names":[],"mappings":"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"}
|