@blibliki/engine 0.1.5 → 0.1.7
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/build/Engine.d.ts +5 -41
- package/build/Engine.js +3 -3
- package/build/Engine.js.map +1 -1
- package/build/Module/Base.d.ts +6 -20
- package/build/Module/Base.js +4 -20
- package/build/Module/Base.js.map +1 -1
- package/build/Module/BitCrusher.d.ts +2 -1
- package/build/Module/BitCrusher.js +3 -3
- package/build/Module/BitCrusher.js.map +1 -1
- package/build/Module/Delay.d.ts +1 -0
- package/build/Module/Delay.js +2 -2
- package/build/Module/Delay.js.map +1 -1
- package/build/Module/Distortion.d.ts +1 -0
- package/build/Module/Distortion.js +2 -2
- package/build/Module/Distortion.js.map +1 -1
- package/build/Module/Effect.d.ts +2 -2
- package/build/Module/Effect.js +1 -2
- package/build/Module/Effect.js.map +1 -1
- package/build/Module/Envelope/AmpEnvelope.d.ts +4 -2
- package/build/Module/Envelope/AmpEnvelope.js +5 -6
- package/build/Module/Envelope/AmpEnvelope.js.map +1 -1
- package/build/Module/Envelope/Base.d.ts +9 -7
- package/build/Module/Envelope/Base.js +11 -11
- package/build/Module/Envelope/Base.js.map +1 -1
- package/build/Module/Envelope/FreqEnvelope.d.ts +3 -2
- package/build/Module/Envelope/FreqEnvelope.js +5 -6
- package/build/Module/Envelope/FreqEnvelope.js.map +1 -1
- package/build/Module/Envelope/index.d.ts +1 -1
- package/build/Module/Envelope/index.js +1 -1
- package/build/Module/Envelope/index.js.map +1 -1
- package/build/Module/Filter.d.ts +9 -8
- package/build/Module/Filter.js +10 -9
- package/build/Module/Filter.js.map +1 -1
- package/build/Module/Master.d.ts +2 -1
- package/build/Module/Master.js +2 -2
- package/build/Module/Master.js.map +1 -1
- package/build/Module/MidiSelector.d.ts +3 -0
- package/build/Module/MidiSelector.js +13 -6
- package/build/Module/MidiSelector.js.map +1 -1
- package/build/Module/Oscillator.d.ts +6 -5
- package/build/Module/Oscillator.js +7 -7
- package/build/Module/Oscillator.js.map +1 -1
- package/build/Module/PolyModule.d.ts +10 -18
- package/build/Module/PolyModule.js +11 -26
- package/build/Module/PolyModule.js.map +1 -1
- package/build/Module/Reverb.d.ts +1 -0
- package/build/Module/Reverb.js +2 -2
- package/build/Module/Reverb.js.map +1 -1
- package/build/Module/VirtualMidi.d.ts +3 -2
- package/build/Module/VirtualMidi.js +2 -2
- package/build/Module/VirtualMidi.js.map +1 -1
- package/build/Module/VoiceScheduler.d.ts +8 -7
- package/build/Module/VoiceScheduler.js +6 -6
- package/build/Module/VoiceScheduler.js.map +1 -1
- package/build/Module/Volume.d.ts +6 -5
- package/build/Module/Volume.js +7 -7
- package/build/Module/Volume.js.map +1 -1
- package/build/Module/index.d.ts +2 -17
- package/build/Module/index.js +24 -41
- package/build/Module/index.js.map +1 -1
- package/build/index.d.ts +0 -1
- package/build/index.js +0 -1
- package/build/index.js.map +1 -1
- package/package.json +3 -1
- package/src/Engine.ts +2 -7
- package/src/Module/Base.ts +9 -21
- package/src/Module/BitCrusher.ts +4 -3
- package/src/Module/Delay.ts +3 -2
- package/src/Module/Distortion.ts +3 -2
- package/src/Module/Effect.ts +1 -3
- package/src/Module/Envelope/AmpEnvelope.ts +6 -6
- package/src/Module/Envelope/Base.ts +12 -13
- package/src/Module/Envelope/FreqEnvelope.ts +6 -6
- package/src/Module/Envelope/index.ts +1 -1
- package/src/Module/Filter.ts +17 -15
- package/src/Module/Master.ts +3 -2
- package/src/Module/MidiSelector.ts +15 -6
- package/src/Module/Oscillator.ts +10 -10
- package/src/Module/PolyModule.ts +19 -30
- package/src/Module/Reverb.ts +3 -2
- package/src/Module/VirtualMidi.ts +2 -2
- package/src/Module/VoiceScheduler.ts +8 -10
- package/src/Module/Volume.ts +9 -9
- package/src/Module/index.ts +27 -41
- package/src/index.ts +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import Module, {
|
|
2
|
-
import PolyModule
|
|
1
|
+
import Module, { DummnyInternalModule } from "./Base";
|
|
2
|
+
import PolyModule from "./PolyModule";
|
|
3
3
|
export default class VoiceScheduler extends PolyModule {
|
|
4
|
+
static moduleName = "VoiceScheduler";
|
|
4
5
|
midiOutput;
|
|
5
6
|
numberOfVoicesOut;
|
|
6
7
|
constructor(name, props) {
|
|
7
|
-
super(
|
|
8
|
+
super({
|
|
8
9
|
name,
|
|
10
|
+
child: Voice,
|
|
9
11
|
props,
|
|
10
|
-
type: ModuleType.Voice,
|
|
11
12
|
});
|
|
12
13
|
this.registerInputs();
|
|
13
14
|
this.registerOutputs();
|
|
@@ -82,7 +83,7 @@ export default class VoiceScheduler extends PolyModule {
|
|
|
82
83
|
this.midiOutput = this.registerOutput({ name: "midi out" });
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
class Voice extends Module {
|
|
86
87
|
midiEvent;
|
|
87
88
|
activeNote;
|
|
88
89
|
triggeredAt;
|
|
@@ -90,7 +91,6 @@ export class Voice extends Module {
|
|
|
90
91
|
constructor(name, props) {
|
|
91
92
|
super(new DummnyInternalModule(), {
|
|
92
93
|
name,
|
|
93
|
-
type: ModuleType.Voice,
|
|
94
94
|
props,
|
|
95
95
|
});
|
|
96
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VoiceScheduler.js","sourceRoot":"","sources":["../../src/Module/VoiceScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"VoiceScheduler.js","sourceRoot":"","sources":["../../src/Module/VoiceScheduler.ts"],"names":[],"mappings":"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"}
|
package/build/Module/Volume.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Volume as Vol } from "tone";
|
|
2
|
-
import Module from "
|
|
2
|
+
import Module, { Voicable } from "./Base";
|
|
3
3
|
import PolyModule from "./PolyModule";
|
|
4
|
-
export interface VolumeInterface {
|
|
4
|
+
export interface VolumeInterface extends Voicable {
|
|
5
5
|
volume: number;
|
|
6
|
-
voiceNo?: number;
|
|
7
6
|
}
|
|
8
|
-
|
|
7
|
+
declare class MonoVolume extends Module<Vol, VolumeInterface> {
|
|
9
8
|
constructor(name: string, props: Partial<VolumeInterface>);
|
|
10
9
|
get volume(): number;
|
|
11
10
|
set volume(value: number);
|
|
12
11
|
}
|
|
13
|
-
export
|
|
12
|
+
export default class Volume extends PolyModule<MonoVolume, VolumeInterface> {
|
|
13
|
+
static moduleName: string;
|
|
14
14
|
constructor(name: string, props: Partial<VolumeInterface>);
|
|
15
15
|
}
|
|
16
|
+
export {};
|
package/build/Module/Volume.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { Volume as Vol } from "tone";
|
|
2
|
-
import Module
|
|
3
|
-
import PolyModule
|
|
2
|
+
import Module from "./Base";
|
|
3
|
+
import PolyModule from "./PolyModule";
|
|
4
4
|
const InitialProps = {
|
|
5
5
|
volume: -100,
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
class MonoVolume extends Module {
|
|
8
8
|
constructor(name, props) {
|
|
9
9
|
super(new Vol(), {
|
|
10
10
|
name,
|
|
11
11
|
props: { ...InitialProps, ...props },
|
|
12
|
-
type: ModuleType.Volume,
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
14
|
get volume() {
|
|
@@ -20,12 +19,13 @@ export default class Volume extends Module {
|
|
|
20
19
|
this.internalModule.volume.value = this.volume;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
export class
|
|
22
|
+
export default class Volume extends PolyModule {
|
|
23
|
+
static moduleName = "Volume";
|
|
24
24
|
constructor(name, props) {
|
|
25
|
-
super(
|
|
25
|
+
super({
|
|
26
26
|
name,
|
|
27
|
+
child: MonoVolume,
|
|
27
28
|
props: { ...InitialProps, ...props },
|
|
28
|
-
type: ModuleType.Volume,
|
|
29
29
|
});
|
|
30
30
|
this.registerBasicInputs();
|
|
31
31
|
this.registerBasicOutputs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../src/Module/Volume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,
|
|
1
|
+
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../src/Module/Volume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,MAAoB,MAAM,QAAQ,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AAMtC,MAAM,YAAY,GAAoB;IACpC,MAAM,EAAE,CAAC,GAAG;CACb,CAAC;AAEF,MAAM,UAAW,SAAQ,MAA4B;IACnD,YAAY,IAAY,EAAE,KAA+B;QACvD,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE;YACf,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAE/C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAuC;IACzE,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAE7B,YAAY,IAAY,EAAE,KAA+B;QACvD,KAAK,CAAC;YACJ,IAAI;YACJ,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC"}
|
package/build/Module/index.d.ts
CHANGED
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
import Module, { Connectable } from "./Base";
|
|
2
2
|
import PolyModule from "./PolyModule";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import Filter, { PolyFilter } from "./Filter";
|
|
6
|
-
import Master from "./Master";
|
|
7
|
-
import VoiceScheduler, { Voice } from "./VoiceScheduler";
|
|
8
|
-
import MidiSelector from "./MidiSelector";
|
|
9
|
-
import { PolyAmpEnvelope } from "./Envelope/AmpEnvelope";
|
|
10
|
-
import { PolyEnvelope } from "./Envelope/Base";
|
|
11
|
-
import Volume, { PolyVolume } from "./Volume";
|
|
12
|
-
import VirtualMidi from "./VirtualMidi";
|
|
13
|
-
import Reverb from "./Reverb";
|
|
14
|
-
import Delay from "./Delay";
|
|
15
|
-
import Distortion from "./Distortion";
|
|
16
|
-
import BitCrusher from "./BitCrusher";
|
|
17
|
-
export { default, ModuleType } from "./Base";
|
|
18
|
-
export { default as PolyModule, PolyModuleType } from "./PolyModule";
|
|
3
|
+
export { default } from "./Base";
|
|
4
|
+
export { default as PolyModule } from "./PolyModule";
|
|
19
5
|
export type { ModuleInterface, Connectable, Triggerable } from "./Base";
|
|
20
6
|
export { default as Filter } from "./Filter";
|
|
21
7
|
export { default as Oscillator } from "./Oscillator";
|
|
22
8
|
export { Envelope, AmpEnvelope, FreqEnvelope, EnvelopeStages, } from "./Envelope";
|
|
23
9
|
export declare type AudioModule = Module<Connectable, any> | PolyModule<Module<Connectable, any>, any>;
|
|
24
10
|
export declare function createModule(name: string, type: string, props: any): AudioModule;
|
|
25
|
-
export declare function moduleClassFromType(type: string): typeof Reverb | typeof Delay | typeof Distortion | typeof BitCrusher | typeof Oscillator | typeof Envelope | typeof AmpEnvelope | typeof Filter | typeof Volume | typeof PolyOscillator | typeof PolyEnvelope | typeof PolyAmpEnvelope | typeof PolyFilter | typeof PolyVolume | typeof Master | typeof Voice | typeof VoiceScheduler | typeof MidiSelector | typeof VirtualMidi;
|
package/build/Module/index.js
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import Oscillator, { PolyOscillator } from "./Oscillator";
|
|
1
|
+
import { camelCase, upperFirst } from "lodash";
|
|
2
|
+
import Oscillator from "./Oscillator";
|
|
4
3
|
import { Envelope, AmpEnvelope, FreqEnvelope } from "./Envelope";
|
|
5
|
-
import Filter
|
|
4
|
+
import Filter from "./Filter";
|
|
6
5
|
import Master from "./Master";
|
|
7
|
-
import VoiceScheduler
|
|
6
|
+
import VoiceScheduler from "./VoiceScheduler";
|
|
8
7
|
import MidiSelector from "./MidiSelector";
|
|
9
|
-
import
|
|
10
|
-
import { PolyFreqEnvelope } from "./Envelope/FreqEnvelope";
|
|
11
|
-
import { PolyEnvelope } from "./Envelope/Base";
|
|
12
|
-
import Volume, { PolyVolume } from "./Volume";
|
|
8
|
+
import Volume from "./Volume";
|
|
13
9
|
import VirtualMidi from "./VirtualMidi";
|
|
14
10
|
import Reverb from "./Reverb";
|
|
15
11
|
import Delay from "./Delay";
|
|
16
12
|
import Distortion from "./Distortion";
|
|
17
13
|
import BitCrusher from "./BitCrusher";
|
|
18
|
-
export { default
|
|
19
|
-
export { default as PolyModule
|
|
14
|
+
export { default } from "./Base";
|
|
15
|
+
export { default as PolyModule } from "./PolyModule";
|
|
20
16
|
export { default as Filter } from "./Filter";
|
|
21
17
|
export { default as Oscillator } from "./Oscillator";
|
|
22
18
|
export { Envelope, AmpEnvelope, FreqEnvelope, EnvelopeStages, } from "./Envelope";
|
|
@@ -24,52 +20,39 @@ export function createModule(name, type, props) {
|
|
|
24
20
|
const klass = moduleClassFromType(type);
|
|
25
21
|
return new klass(name, props);
|
|
26
22
|
}
|
|
27
|
-
|
|
23
|
+
function moduleClassFromType(type) {
|
|
24
|
+
type = upperFirst(camelCase(type));
|
|
28
25
|
switch (type) {
|
|
29
|
-
case
|
|
26
|
+
case Oscillator.moduleName:
|
|
30
27
|
return Oscillator;
|
|
31
|
-
case
|
|
28
|
+
case Envelope.moduleName:
|
|
32
29
|
return Envelope;
|
|
33
|
-
case
|
|
30
|
+
case AmpEnvelope.moduleName:
|
|
34
31
|
return AmpEnvelope;
|
|
35
|
-
case
|
|
32
|
+
case FreqEnvelope.moduleName:
|
|
36
33
|
return FreqEnvelope;
|
|
37
|
-
case
|
|
34
|
+
case Filter.moduleName:
|
|
38
35
|
return Filter;
|
|
39
|
-
case
|
|
36
|
+
case Volume.moduleName:
|
|
40
37
|
return Volume;
|
|
41
|
-
case
|
|
42
|
-
return PolyOscillator;
|
|
43
|
-
case PolyModuleType.Envelope:
|
|
44
|
-
return PolyEnvelope;
|
|
45
|
-
case PolyModuleType.AmpEnvelope:
|
|
46
|
-
return PolyAmpEnvelope;
|
|
47
|
-
case PolyModuleType.FreqEnvelope:
|
|
48
|
-
return PolyFreqEnvelope;
|
|
49
|
-
case PolyModuleType.Filter:
|
|
50
|
-
return PolyFilter;
|
|
51
|
-
case PolyModuleType.Volume:
|
|
52
|
-
return PolyVolume;
|
|
53
|
-
case ModuleType.Master:
|
|
38
|
+
case Master.moduleName:
|
|
54
39
|
return Master;
|
|
55
|
-
case
|
|
56
|
-
return Voice;
|
|
57
|
-
case PolyModuleType.VoiceScheduler:
|
|
40
|
+
case VoiceScheduler.moduleName:
|
|
58
41
|
return VoiceScheduler;
|
|
59
|
-
case
|
|
42
|
+
case MidiSelector.moduleName:
|
|
60
43
|
return MidiSelector;
|
|
61
|
-
case
|
|
44
|
+
case VirtualMidi.moduleName:
|
|
62
45
|
return VirtualMidi;
|
|
63
|
-
case
|
|
46
|
+
case Reverb.moduleName:
|
|
64
47
|
return Reverb;
|
|
65
|
-
case
|
|
48
|
+
case Delay.moduleName:
|
|
66
49
|
return Delay;
|
|
67
|
-
case
|
|
50
|
+
case Distortion.moduleName:
|
|
68
51
|
return Distortion;
|
|
69
|
-
case
|
|
52
|
+
case BitCrusher.moduleName:
|
|
70
53
|
return BitCrusher;
|
|
71
54
|
default:
|
|
72
|
-
throw Error(
|
|
55
|
+
throw Error(`Unknown module type ${type}`);
|
|
73
56
|
}
|
|
74
57
|
}
|
|
75
58
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Module/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Module/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG/C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAMpB,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,IAAY,EACZ,KAAU;IAEV,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAExC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnC,QAAQ,IAAI,EAAE;QACZ,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,UAAU,CAAC;QACpB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,QAAQ,CAAC;QAClB,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,WAAW,CAAC;QACrB,KAAK,YAAY,CAAC,UAAU;YAC1B,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM,CAAC,UAAU;YACpB,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,CAAC,UAAU;YACpB,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,CAAC,UAAU;YACpB,OAAO,MAAM,CAAC;QAChB,KAAK,cAAc,CAAC,UAAU;YAC5B,OAAO,cAAc,CAAC;QACxB,KAAK,YAAY,CAAC,UAAU;YAC1B,OAAO,YAAY,CAAC;QACtB,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,WAAW,CAAC;QACrB,KAAK,MAAM,CAAC,UAAU;YACpB,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK,CAAC,UAAU;YACnB,OAAO,KAAK,CAAC;QACf,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,UAAU,CAAC;QACpB;YACE,MAAM,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;KAC9C;AACH,CAAC"}
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blibliki/engine",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
7
|
+
"@types/lodash": "^4.14.186",
|
|
8
|
+
"lodash": "^4.17.21",
|
|
7
9
|
"tone": "^14.7.77",
|
|
8
10
|
"uuid": "^8.3.2"
|
|
9
11
|
},
|
package/src/Engine.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { Context, setContext } from "tone";
|
|
|
2
2
|
import MidiDeviceManager from "./MidiDeviceManager";
|
|
3
3
|
import MidiEvent from "./MidiEvent";
|
|
4
4
|
|
|
5
|
-
import { ModuleType } from "./Module";
|
|
6
5
|
import { AudioModule, createModule } from "./Module";
|
|
7
6
|
import Master from "./Module/Master";
|
|
8
7
|
import VirtualMidi from "./Module/VirtualMidi";
|
|
@@ -112,11 +111,7 @@ class Engine {
|
|
|
112
111
|
get master() {
|
|
113
112
|
if (this._master) return this._master.serialize();
|
|
114
113
|
|
|
115
|
-
const masterProps = this.registerModule(
|
|
116
|
-
"Master",
|
|
117
|
-
"master",
|
|
118
|
-
ModuleType.Master
|
|
119
|
-
);
|
|
114
|
+
const masterProps = this.registerModule("Master", "Master");
|
|
120
115
|
this._master = this.modules[masterProps.id] as Master;
|
|
121
116
|
|
|
122
117
|
return masterProps;
|
|
@@ -130,7 +125,7 @@ class Engine {
|
|
|
130
125
|
|
|
131
126
|
dispose() {
|
|
132
127
|
Object.values(this.modules).forEach((m) => {
|
|
133
|
-
if (m
|
|
128
|
+
if (m instanceof Master) return;
|
|
134
129
|
|
|
135
130
|
m.dispose();
|
|
136
131
|
});
|
package/src/Module/Base.ts
CHANGED
|
@@ -5,23 +5,6 @@ import { Input, Output, IOInterface } from "./IO";
|
|
|
5
5
|
import MidiEvent from "../MidiEvent";
|
|
6
6
|
import { AudioModule, PolyModule } from "../Module";
|
|
7
7
|
|
|
8
|
-
export enum ModuleType {
|
|
9
|
-
Oscillator = "monoOscillator",
|
|
10
|
-
Envelope = "monoEnvelope",
|
|
11
|
-
AmpEnvelope = "monoAmpEnvelope",
|
|
12
|
-
FreqEnvelope = "monoFreqEnvelope",
|
|
13
|
-
Filter = "monoFilter",
|
|
14
|
-
Master = "master",
|
|
15
|
-
Voice = "voice",
|
|
16
|
-
MidiSelector = "midiSelector",
|
|
17
|
-
VirtualMidi = "virtualMidi",
|
|
18
|
-
Volume = "monoVolume",
|
|
19
|
-
Reverb = "reverb",
|
|
20
|
-
Delay = "delay",
|
|
21
|
-
Distortion = "distortion",
|
|
22
|
-
BitCrusher = "bitCrusher",
|
|
23
|
-
}
|
|
24
|
-
|
|
25
8
|
export interface Connectable {
|
|
26
9
|
connect: (inputNode: InputNode) => void;
|
|
27
10
|
disconnect: (inputNode?: InputNode) => void;
|
|
@@ -33,9 +16,12 @@ export interface Triggerable {
|
|
|
33
16
|
triggerRelease: Function;
|
|
34
17
|
}
|
|
35
18
|
|
|
19
|
+
export interface Voicable {
|
|
20
|
+
voiceNo?: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
36
23
|
export interface ModuleInterface {
|
|
37
24
|
name: string;
|
|
38
|
-
type: ModuleType;
|
|
39
25
|
props?: { [key: string]: any };
|
|
40
26
|
voiceNo?: number;
|
|
41
27
|
}
|
|
@@ -53,13 +39,13 @@ export class DummnyInternalModule implements Connectable {
|
|
|
53
39
|
class Module<InternalModule extends Connectable, PropsInterface>
|
|
54
40
|
implements ModuleInterface
|
|
55
41
|
{
|
|
56
|
-
|
|
42
|
+
static readonly moduleName: string;
|
|
57
43
|
|
|
58
44
|
readonly id: string;
|
|
59
45
|
name: string;
|
|
46
|
+
internalModule: InternalModule;
|
|
60
47
|
inputs: Input[] = [];
|
|
61
48
|
outputs: Output[] = [];
|
|
62
|
-
type: ModuleType;
|
|
63
49
|
readonly voiceNo?: number;
|
|
64
50
|
updatedAt: Date;
|
|
65
51
|
_props: PropsInterface;
|
|
@@ -157,10 +143,12 @@ class Module<InternalModule extends Connectable, PropsInterface>
|
|
|
157
143
|
};
|
|
158
144
|
|
|
159
145
|
serialize() {
|
|
146
|
+
const klass = this.constructor as typeof Module;
|
|
147
|
+
|
|
160
148
|
return {
|
|
161
149
|
id: this.id,
|
|
162
150
|
name: this.name,
|
|
163
|
-
type:
|
|
151
|
+
type: klass.moduleName,
|
|
164
152
|
props: this.props,
|
|
165
153
|
inputs: this.inputs.map((i) => i.serialize()),
|
|
166
154
|
outputs: this.outputs.map((i) => i.serialize()),
|
package/src/Module/BitCrusher.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BitCrusher as InternalBitCrasher } from "tone";
|
|
2
2
|
|
|
3
|
-
import { ModuleType } from "./Base";
|
|
4
3
|
import Effect, { EffectInterface } from "./Effect";
|
|
5
4
|
|
|
6
5
|
interface BitCrusherInterface extends EffectInterface {
|
|
@@ -11,12 +10,14 @@ const InitialProps: Partial<BitCrusherInterface> = {
|
|
|
11
10
|
bits: 16,
|
|
12
11
|
};
|
|
13
12
|
|
|
14
|
-
export default class
|
|
13
|
+
export default class BitCrusher extends Effect<
|
|
15
14
|
InternalBitCrasher,
|
|
16
15
|
BitCrusherInterface
|
|
17
16
|
> {
|
|
17
|
+
static moduleName = "BitCrusher";
|
|
18
|
+
|
|
18
19
|
constructor(name: string, props: Partial<BitCrusherInterface>) {
|
|
19
|
-
super(name,
|
|
20
|
+
super(name, new InternalBitCrasher(), {
|
|
20
21
|
...InitialProps,
|
|
21
22
|
...props,
|
|
22
23
|
});
|
package/src/Module/Delay.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FeedbackDelay } from "tone";
|
|
2
2
|
|
|
3
|
-
import { ModuleType } from "./Base";
|
|
4
3
|
import Effect, { EffectInterface } from "./Effect";
|
|
5
4
|
|
|
6
5
|
interface DelayInterface extends EffectInterface {
|
|
@@ -14,8 +13,10 @@ const InitialProps: Partial<DelayInterface> = {
|
|
|
14
13
|
};
|
|
15
14
|
|
|
16
15
|
export default class Delay extends Effect<FeedbackDelay, DelayInterface> {
|
|
16
|
+
static moduleName = "Delay";
|
|
17
|
+
|
|
17
18
|
constructor(name: string, props: Partial<DelayInterface>) {
|
|
18
|
-
super(name,
|
|
19
|
+
super(name, new FeedbackDelay(), {
|
|
19
20
|
...InitialProps,
|
|
20
21
|
...props,
|
|
21
22
|
});
|
package/src/Module/Distortion.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Distortion as InternalDistortion } from "tone";
|
|
2
2
|
|
|
3
|
-
import { ModuleType } from "./Base";
|
|
4
3
|
import Effect, { EffectInterface } from "./Effect";
|
|
5
4
|
|
|
6
5
|
interface DistortionInterface extends EffectInterface {
|
|
@@ -15,8 +14,10 @@ export default class Distortion extends Effect<
|
|
|
15
14
|
InternalDistortion,
|
|
16
15
|
DistortionInterface
|
|
17
16
|
> {
|
|
17
|
+
static moduleName = "Distortion";
|
|
18
|
+
|
|
18
19
|
constructor(name: string, props: Partial<DistortionInterface>) {
|
|
19
|
-
super(name,
|
|
20
|
+
super(name, new InternalDistortion(), {
|
|
20
21
|
...InitialProps,
|
|
21
22
|
...props,
|
|
22
23
|
});
|
package/src/Module/Effect.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Signal } from "tone";
|
|
2
|
-
import Module, { Connectable
|
|
2
|
+
import Module, { Connectable } from "./Base";
|
|
3
3
|
|
|
4
4
|
interface EffectLike extends Connectable {
|
|
5
5
|
wet: Signal<"normalRange">;
|
|
@@ -19,13 +19,11 @@ export default abstract class Effect<
|
|
|
19
19
|
> extends Module<InternalEffect, ModuleInterface> {
|
|
20
20
|
constructor(
|
|
21
21
|
name: string,
|
|
22
|
-
type: ModuleType,
|
|
23
22
|
internalModule: InternalEffect,
|
|
24
23
|
props: Partial<ModuleInterface>
|
|
25
24
|
) {
|
|
26
25
|
super(internalModule, {
|
|
27
26
|
name,
|
|
28
|
-
type,
|
|
29
27
|
props: { ...InitialProps, ...props },
|
|
30
28
|
});
|
|
31
29
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { AmplitudeEnvelope } from "tone";
|
|
2
2
|
|
|
3
|
-
import { ModuleType } from "../index";
|
|
4
3
|
import Base, { EnvelopeInterface, PolyBase } from "./Base";
|
|
5
|
-
import { PolyModuleType } from "../PolyModule";
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
class MonoAmpEnvelope extends Base<AmplitudeEnvelope> {
|
|
8
6
|
constructor(name: string, props: EnvelopeInterface) {
|
|
9
|
-
super(name,
|
|
7
|
+
super(name, new AmplitudeEnvelope(), props);
|
|
10
8
|
}
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
export class
|
|
11
|
+
export default class AmpEnvelope extends PolyBase<MonoAmpEnvelope> {
|
|
12
|
+
static moduleName = "AmpEnvelope";
|
|
13
|
+
|
|
14
14
|
constructor(name: string, props: Partial<EnvelopeInterface>) {
|
|
15
|
-
super(name,
|
|
15
|
+
super(name, MonoAmpEnvelope, props);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Envelope as Env } from "tone";
|
|
2
2
|
|
|
3
|
-
import Module, {
|
|
4
|
-
import PolyModule
|
|
3
|
+
import Module, { Connectable, Triggerable, Voicable } from "../Base";
|
|
4
|
+
import PolyModule from "../PolyModule";
|
|
5
5
|
import MidiEvent from "../../MidiEvent";
|
|
6
6
|
|
|
7
7
|
export const enum EnvelopeStages {
|
|
@@ -16,7 +16,7 @@ const MIN_TIME = 0.01;
|
|
|
16
16
|
const SUSTAIN_MAX_VALUE = 1;
|
|
17
17
|
const SUSTAIN_MIN_VALUE = 0;
|
|
18
18
|
|
|
19
|
-
export interface EnvelopeInterface {
|
|
19
|
+
export interface EnvelopeInterface extends Voicable {
|
|
20
20
|
attack: number;
|
|
21
21
|
decay: number;
|
|
22
22
|
sustain: number;
|
|
@@ -40,13 +40,11 @@ export default abstract class EnvelopeModule<EnvelopeLike extends Env>
|
|
|
40
40
|
|
|
41
41
|
constructor(
|
|
42
42
|
name: string,
|
|
43
|
-
type: ModuleType,
|
|
44
43
|
internalModule: EnvelopeLike,
|
|
45
44
|
props: EnvelopeInterface
|
|
46
45
|
) {
|
|
47
46
|
super(internalModule, {
|
|
48
47
|
name,
|
|
49
|
-
type,
|
|
50
48
|
props: { ...InitialProps, ...props },
|
|
51
49
|
});
|
|
52
50
|
}
|
|
@@ -120,13 +118,12 @@ export abstract class PolyBase<
|
|
|
120
118
|
> extends PolyModule<EnvelopeModule, EnvelopeInterface> {
|
|
121
119
|
constructor(
|
|
122
120
|
name: string,
|
|
123
|
-
|
|
124
|
-
polyType: PolyModuleType,
|
|
121
|
+
child: new (name: string, props: EnvelopeInterface) => EnvelopeModule,
|
|
125
122
|
props: Partial<EnvelopeInterface>
|
|
126
123
|
) {
|
|
127
|
-
super(
|
|
124
|
+
super({
|
|
128
125
|
name,
|
|
129
|
-
|
|
126
|
+
child,
|
|
130
127
|
props: { ...InitialProps, ...props },
|
|
131
128
|
});
|
|
132
129
|
|
|
@@ -143,15 +140,17 @@ export abstract class PolyBase<
|
|
|
143
140
|
}
|
|
144
141
|
}
|
|
145
142
|
|
|
146
|
-
|
|
143
|
+
class MonoEnvelope extends EnvelopeModule<Env> {
|
|
147
144
|
constructor(name: string, props: EnvelopeInterface) {
|
|
148
|
-
super(name,
|
|
145
|
+
super(name, new Env(), props);
|
|
149
146
|
}
|
|
150
147
|
}
|
|
151
148
|
|
|
152
|
-
export class
|
|
149
|
+
export class Envelope extends PolyBase<MonoEnvelope> {
|
|
150
|
+
static moduleName = "Envelope";
|
|
151
|
+
|
|
153
152
|
constructor(name: string, props: Partial<EnvelopeInterface>) {
|
|
154
|
-
super(name,
|
|
153
|
+
super(name, MonoEnvelope, {
|
|
155
154
|
...InitialProps,
|
|
156
155
|
...props,
|
|
157
156
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { FrequencyEnvelope } from "tone";
|
|
2
2
|
|
|
3
|
-
import { ModuleType } from "../Base";
|
|
4
3
|
import Filter from "../Filter";
|
|
5
4
|
import { Output } from "../IO";
|
|
6
|
-
import { PolyModuleType } from "../PolyModule";
|
|
7
5
|
|
|
8
6
|
import Base, { EnvelopeInterface, PolyBase } from "./Base";
|
|
9
7
|
|
|
@@ -15,13 +13,13 @@ const InitialProps: FreqEnvelopeInterface = {
|
|
|
15
13
|
amount: 0,
|
|
16
14
|
};
|
|
17
15
|
|
|
18
|
-
export
|
|
16
|
+
export class MonoFreqEnvelope extends Base<FrequencyEnvelope> {
|
|
19
17
|
private _frequency: number;
|
|
20
18
|
private _amount: number;
|
|
21
19
|
filter: Filter;
|
|
22
20
|
|
|
23
21
|
constructor(name: string, props: EnvelopeInterface) {
|
|
24
|
-
super(name,
|
|
22
|
+
super(name, new FrequencyEnvelope(), {
|
|
25
23
|
...InitialProps,
|
|
26
24
|
...props,
|
|
27
25
|
});
|
|
@@ -47,9 +45,11 @@ export default class FreqEnvelope extends Base<FrequencyEnvelope> {
|
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
|
|
50
|
-
export class
|
|
48
|
+
export default class FreqEnvelope extends PolyBase<MonoFreqEnvelope> {
|
|
49
|
+
static moduleName = "FreqEnvelope";
|
|
50
|
+
|
|
51
51
|
constructor(name: string, props: Partial<EnvelopeInterface>) {
|
|
52
|
-
super(name,
|
|
52
|
+
super(name, MonoFreqEnvelope, props);
|
|
53
53
|
|
|
54
54
|
this.registerOutputs();
|
|
55
55
|
}
|