@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,4 +1,4 @@
|
|
|
1
1
|
export { default, Envelope, EnvelopeStages } from "./Base";
|
|
2
2
|
export { default as AmpEnvelope } from "./AmpEnvelope";
|
|
3
|
-
export { default as FreqEnvelope } from "./FreqEnvelope";
|
|
3
|
+
export { default as FreqEnvelope, MonoFreqEnvelope } from "./FreqEnvelope";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Module/Envelope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Module/Envelope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/build/Module/Filter.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Filter as InternalFilter } from "tone";
|
|
2
|
-
import { FreqEnvelope } from "./Envelope";
|
|
3
|
-
import Module from "./Base";
|
|
2
|
+
import { FreqEnvelope, MonoFreqEnvelope } from "./Envelope";
|
|
3
|
+
import Module, { Voicable } from "./Base";
|
|
4
4
|
import PolyModule from "./PolyModule";
|
|
5
|
-
|
|
6
|
-
interface FilterInterface {
|
|
5
|
+
interface FilterInterface extends Voicable {
|
|
7
6
|
cutoff: number;
|
|
7
|
+
filterType: BiquadFilterType;
|
|
8
8
|
resonance: number;
|
|
9
9
|
envelopeAmount: number;
|
|
10
10
|
voiceNo?: number;
|
|
11
11
|
}
|
|
12
12
|
interface FilterProps extends Partial<FilterInterface> {
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
declare class MonoFilter extends Module<InternalFilter, FilterInterface> {
|
|
15
15
|
private _envelope;
|
|
16
16
|
constructor(name: string, props: FilterProps);
|
|
17
17
|
get cutoff(): number;
|
|
@@ -21,11 +21,12 @@ export default class Filter extends Module<InternalFilter, FilterInterface> {
|
|
|
21
21
|
set resonance(value: number);
|
|
22
22
|
get envelopeAmount(): number;
|
|
23
23
|
set envelopeAmount(value: number);
|
|
24
|
-
conntectedEnvelope(envelope:
|
|
24
|
+
conntectedEnvelope(envelope: MonoFreqEnvelope): void;
|
|
25
25
|
}
|
|
26
|
-
export
|
|
26
|
+
export default class Filter extends PolyModule<MonoFilter, FilterInterface> {
|
|
27
|
+
static moduleName: string;
|
|
27
28
|
constructor(name: string, props: Partial<FilterInterface>);
|
|
28
29
|
private registerInputs;
|
|
29
|
-
conntectedEnvelope(
|
|
30
|
+
conntectedEnvelope(freqEnvelope: FreqEnvelope): void;
|
|
30
31
|
}
|
|
31
32
|
export {};
|
package/build/Module/Filter.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { Filter as InternalFilter } from "tone";
|
|
2
|
-
import Module
|
|
3
|
-
import PolyModule
|
|
2
|
+
import Module from "./Base";
|
|
3
|
+
import PolyModule from "./PolyModule";
|
|
4
4
|
const InitialProps = {
|
|
5
5
|
cutoff: 20000,
|
|
6
6
|
resonance: 0,
|
|
7
7
|
envelopeAmount: 0,
|
|
8
|
+
filterType: "lowpass",
|
|
8
9
|
};
|
|
9
|
-
|
|
10
|
+
class MonoFilter extends Module {
|
|
10
11
|
_envelope;
|
|
11
12
|
constructor(name, props) {
|
|
12
13
|
super(new InternalFilter({ type: "lowpass" }), {
|
|
13
14
|
name,
|
|
14
15
|
props: { ...InitialProps, ...props },
|
|
15
|
-
type: ModuleType.Filter,
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
get cutoff() {
|
|
@@ -52,12 +52,13 @@ export default class Filter extends Module {
|
|
|
52
52
|
this._envelope.amount = this.envelopeAmount;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
export class
|
|
55
|
+
export default class Filter extends PolyModule {
|
|
56
|
+
static moduleName = "Filter";
|
|
56
57
|
constructor(name, props) {
|
|
57
|
-
super(
|
|
58
|
+
super({
|
|
58
59
|
name,
|
|
60
|
+
child: MonoFilter,
|
|
59
61
|
props: { ...InitialProps, ...props },
|
|
60
|
-
type: ModuleType.Filter,
|
|
61
62
|
});
|
|
62
63
|
this.registerBasicInputs();
|
|
63
64
|
this.registerBasicOutputs();
|
|
@@ -72,8 +73,8 @@ export class PolyFilter extends PolyModule {
|
|
|
72
73
|
},
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
|
-
conntectedEnvelope(
|
|
76
|
-
|
|
76
|
+
conntectedEnvelope(freqEnvelope) {
|
|
77
|
+
freqEnvelope.audioModules.forEach((envelope) => {
|
|
77
78
|
if (envelope.voiceNo === undefined)
|
|
78
79
|
return;
|
|
79
80
|
const filter = this.findVoice(envelope.voiceNo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/Module/Filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,
|
|
1
|
+
{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/Module/Filter.ts"],"names":[],"mappings":"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"}
|
package/build/Module/Master.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Destination } from "tone";
|
|
2
|
-
import Module from "
|
|
2
|
+
import Module from "./Base";
|
|
3
3
|
export interface MasterInterface {
|
|
4
4
|
}
|
|
5
5
|
export default class Master extends Module<typeof Destination, MasterInterface> {
|
|
6
|
+
static moduleName: string;
|
|
6
7
|
constructor();
|
|
7
8
|
}
|
package/build/Module/Master.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getDestination } from "tone";
|
|
2
|
-
import Module
|
|
2
|
+
import Module from "./Base";
|
|
3
3
|
export default class Master extends Module {
|
|
4
|
+
static moduleName = "Master";
|
|
4
5
|
constructor() {
|
|
5
6
|
super(getDestination(), {
|
|
6
7
|
name: "Master",
|
|
7
|
-
type: ModuleType.Master,
|
|
8
8
|
});
|
|
9
9
|
this.registerBasicInputs();
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Master.js","sourceRoot":"","sources":["../../src/Module/Master.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"Master.js","sourceRoot":"","sources":["../../src/Module/Master.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,MAGnC;IACC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAE7B;QACE,KAAK,CAAC,cAAc,EAAE,EAAE;YACtB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC"}
|
|
@@ -4,11 +4,14 @@ export interface MidiSelectorInterface {
|
|
|
4
4
|
selectedId: string | null;
|
|
5
5
|
}
|
|
6
6
|
export default class MidiSelector extends Module<DummnyInternalModule, MidiSelectorInterface> {
|
|
7
|
+
static moduleName: string;
|
|
7
8
|
midiOutput: Output;
|
|
8
9
|
constructor(name: string, props: Partial<MidiSelectorInterface>);
|
|
9
10
|
get selectedId(): string | null;
|
|
10
11
|
set selectedId(value: string | null);
|
|
12
|
+
dispose(): void;
|
|
11
13
|
private registerOutputs;
|
|
12
14
|
private onMidiEvent;
|
|
13
15
|
private addEventListener;
|
|
16
|
+
private removeEventListener;
|
|
14
17
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import Engine from "../Engine";
|
|
2
|
-
import Module, {
|
|
2
|
+
import Module, { DummnyInternalModule } from "./Base";
|
|
3
3
|
const InitialProps = {
|
|
4
4
|
selectedId: null,
|
|
5
5
|
};
|
|
6
6
|
export default class MidiSelector extends Module {
|
|
7
|
+
static moduleName = "MidiSelector";
|
|
7
8
|
midiOutput;
|
|
8
9
|
constructor(name, props) {
|
|
9
10
|
super(new DummnyInternalModule(), {
|
|
10
11
|
name,
|
|
11
12
|
props: { ...InitialProps, ...props },
|
|
12
|
-
type: ModuleType.MidiSelector,
|
|
13
13
|
});
|
|
14
14
|
this.registerOutputs();
|
|
15
15
|
this.addEventListener(this.selectedId);
|
|
@@ -18,13 +18,14 @@ export default class MidiSelector extends Module {
|
|
|
18
18
|
return this._props["selectedId"];
|
|
19
19
|
}
|
|
20
20
|
set selectedId(value) {
|
|
21
|
-
|
|
22
|
-
const prevMidiDevice = Engine.midiDeviceManager.find(this.selectedId);
|
|
23
|
-
prevMidiDevice?.removeEventListener(this.onMidiEvent);
|
|
24
|
-
}
|
|
21
|
+
this.removeEventListener();
|
|
25
22
|
this._props = { ...this.props, selectedId: value };
|
|
26
23
|
this.addEventListener(value);
|
|
27
24
|
}
|
|
25
|
+
dispose() {
|
|
26
|
+
this.removeEventListener();
|
|
27
|
+
super.dispose();
|
|
28
|
+
}
|
|
28
29
|
registerOutputs() {
|
|
29
30
|
this.midiOutput = this.registerOutput({ name: "midi out" });
|
|
30
31
|
}
|
|
@@ -39,5 +40,11 @@ export default class MidiSelector extends Module {
|
|
|
39
40
|
const midiDevice = Engine.midiDeviceManager.find(midiId);
|
|
40
41
|
midiDevice?.addEventListener(this.onMidiEvent);
|
|
41
42
|
}
|
|
43
|
+
removeEventListener() {
|
|
44
|
+
if (!this.selectedId)
|
|
45
|
+
return;
|
|
46
|
+
const midiDevice = Engine.midiDeviceManager.find(this.selectedId);
|
|
47
|
+
midiDevice?.removeEventListener(this.onMidiEvent);
|
|
48
|
+
}
|
|
42
49
|
}
|
|
43
50
|
//# sourceMappingURL=MidiSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MidiSelector.js","sourceRoot":"","sources":["../../src/Module/MidiSelector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"MidiSelector.js","sourceRoot":"","sources":["../../src/Module/MidiSelector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,MAAM,EAAE,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAOtD,MAAM,YAAY,GAA0B;IAC1C,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAGzC;IACC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC;IACnC,UAAU,CAAS;IAEnB,YAAY,IAAY,EAAE,KAAqC;QAC7D,KAAK,CAAC,IAAI,oBAAoB,EAAE,EAAE;YAChC,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,UAAU,CAAC,KAAoB;QACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,WAAW,GAAG,CAAC,SAAoB,EAAE,EAAE;QAC7C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,gBAAgB,CAAC,MAAqB;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,uCAAuC;QAEjF,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import MidiEvent from "../MidiEvent";
|
|
2
2
|
import { Oscillator as Osc } from "tone";
|
|
3
|
-
import Module from "../Module";
|
|
4
3
|
import Note from "../Note";
|
|
4
|
+
import Module, { Voicable } from "./Base";
|
|
5
5
|
import PolyModule from "./PolyModule";
|
|
6
|
-
export interface OscillatorInterface {
|
|
6
|
+
export interface OscillatorInterface extends Voicable {
|
|
7
7
|
noteName: string;
|
|
8
8
|
fine: number;
|
|
9
9
|
coarse: number;
|
|
10
10
|
wave: string;
|
|
11
11
|
volume: number;
|
|
12
12
|
range: number;
|
|
13
|
-
voiceNo?: number;
|
|
14
13
|
}
|
|
15
|
-
|
|
14
|
+
declare class MonoOscillator extends Module<Osc, OscillatorInterface> {
|
|
16
15
|
private _note;
|
|
17
16
|
constructor(name: string, props: Partial<OscillatorInterface>);
|
|
18
17
|
get note(): Note;
|
|
@@ -36,7 +35,9 @@ export default class Oscillator extends Module<Osc, OscillatorInterface> {
|
|
|
36
35
|
private updateFrequency;
|
|
37
36
|
private getNote;
|
|
38
37
|
}
|
|
39
|
-
export
|
|
38
|
+
export default class Oscillator extends PolyModule<MonoOscillator, OscillatorInterface> {
|
|
39
|
+
static moduleName: string;
|
|
40
40
|
constructor(name: string, props: Partial<OscillatorInterface>);
|
|
41
41
|
private registerInputs;
|
|
42
42
|
}
|
|
43
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Oscillator as Osc } from "tone";
|
|
2
|
-
import Module, { ModuleType } from "../Module";
|
|
3
2
|
import Note from "../Note";
|
|
4
|
-
import
|
|
3
|
+
import Module from "./Base";
|
|
4
|
+
import PolyModule from "./PolyModule";
|
|
5
5
|
const InitialProps = {
|
|
6
6
|
noteName: "C3",
|
|
7
7
|
fine: 0,
|
|
@@ -10,13 +10,12 @@ const InitialProps = {
|
|
|
10
10
|
range: 0,
|
|
11
11
|
volume: 0,
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
class MonoOscillator extends Module {
|
|
14
14
|
_note;
|
|
15
15
|
constructor(name, props) {
|
|
16
16
|
super(new Osc(), {
|
|
17
17
|
name,
|
|
18
18
|
props: { ...InitialProps, ...props },
|
|
19
|
-
type: ModuleType.Oscillator,
|
|
20
19
|
});
|
|
21
20
|
this.note = new Note("C3");
|
|
22
21
|
this.internalModule.sync();
|
|
@@ -103,12 +102,13 @@ export default class Oscillator extends Module {
|
|
|
103
102
|
return note instanceof Note ? note : new Note(note);
|
|
104
103
|
}
|
|
105
104
|
}
|
|
106
|
-
export class
|
|
105
|
+
export default class Oscillator extends PolyModule {
|
|
106
|
+
static moduleName = "Oscillator";
|
|
107
107
|
constructor(name, props) {
|
|
108
|
-
super(
|
|
108
|
+
super({
|
|
109
109
|
name,
|
|
110
|
+
child: MonoOscillator,
|
|
110
111
|
props: { ...InitialProps, ...props },
|
|
111
|
-
type: ModuleType.Oscillator,
|
|
112
112
|
});
|
|
113
113
|
this.registerBasicOutputs();
|
|
114
114
|
this.registerInputs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Oscillator.js","sourceRoot":"","sources":["../../src/Module/Oscillator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,GAAG,EAAsB,MAAM,MAAM,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"Oscillator.js","sourceRoot":"","sources":["../../src/Module/Oscillator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
import MidiEvent from "../MidiEvent";
|
|
2
|
-
import Module, {
|
|
2
|
+
import Module, { Connectable, Voicable } from "./Base";
|
|
3
3
|
import { Input, Output, IOInterface } from "./IO";
|
|
4
4
|
import { AudioModule } from "../Module";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
FreqEnvelope = "freqEnvelope",
|
|
10
|
-
VoiceScheduler = "voiceScheduler",
|
|
11
|
-
Filter = "filter",
|
|
12
|
-
Volume = "volume"
|
|
5
|
+
interface PolyModuleInterface<MonoAudioModule, PropsInterface> {
|
|
6
|
+
name: string;
|
|
7
|
+
child: new (name: string, props: PropsInterface) => MonoAudioModule;
|
|
8
|
+
props: PropsInterface;
|
|
13
9
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export default abstract class PolyModule<MonoAudioModule extends Module<Connectable, any>, PropsInterface> {
|
|
10
|
+
export default abstract class PolyModule<MonoAudioModule extends Module<Connectable, any>, PropsInterface extends Voicable> {
|
|
11
|
+
static readonly moduleName: string;
|
|
17
12
|
readonly id: string;
|
|
13
|
+
readonly child: new (name: string, props: PropsInterface) => MonoAudioModule;
|
|
18
14
|
_name: string;
|
|
19
15
|
audioModules: MonoAudioModule[];
|
|
20
16
|
inputs: Input[];
|
|
21
17
|
outputs: Output[];
|
|
22
|
-
readonly _type: PolyModuleType;
|
|
23
|
-
readonly childrenType: ModuleType;
|
|
24
18
|
private _numberOfVoices;
|
|
25
|
-
constructor(
|
|
26
|
-
get type(): PolyModuleType;
|
|
19
|
+
constructor(params: PolyModuleInterface<MonoAudioModule, PropsInterface>);
|
|
27
20
|
get name(): string;
|
|
28
21
|
set name(value: string);
|
|
29
|
-
set type(value: PolyModuleType);
|
|
30
22
|
get props(): PropsInterface;
|
|
31
23
|
set props(value: PropsInterface);
|
|
32
24
|
get numberOfVoices(): number;
|
|
@@ -37,7 +29,7 @@ export default abstract class PolyModule<MonoAudioModule extends Module<Connecta
|
|
|
37
29
|
midiTriggered: (midiEvent: MidiEvent, voiceNo?: number) => void;
|
|
38
30
|
serialize(): {
|
|
39
31
|
id: string;
|
|
40
|
-
type:
|
|
32
|
+
type: string;
|
|
41
33
|
inputs: import("./IO").SerializeInterface[];
|
|
42
34
|
outputs: import("./IO").SerializeInterface[];
|
|
43
35
|
name: string;
|
|
@@ -1,39 +1,24 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
|
-
import { createModule } from ".";
|
|
3
2
|
import { Input, Output } from "./IO";
|
|
4
|
-
export var PolyModuleType;
|
|
5
|
-
(function (PolyModuleType) {
|
|
6
|
-
PolyModuleType["Oscillator"] = "oscillator";
|
|
7
|
-
PolyModuleType["Envelope"] = "envelope";
|
|
8
|
-
PolyModuleType["AmpEnvelope"] = "ampEnvelope";
|
|
9
|
-
PolyModuleType["FreqEnvelope"] = "freqEnvelope";
|
|
10
|
-
PolyModuleType["VoiceScheduler"] = "voiceScheduler";
|
|
11
|
-
PolyModuleType["Filter"] = "filter";
|
|
12
|
-
PolyModuleType["Volume"] = "volume";
|
|
13
|
-
})(PolyModuleType || (PolyModuleType = {}));
|
|
14
3
|
export default class PolyModule {
|
|
4
|
+
static moduleName;
|
|
15
5
|
id;
|
|
6
|
+
child;
|
|
16
7
|
_name;
|
|
17
8
|
audioModules;
|
|
18
9
|
inputs = [];
|
|
19
10
|
outputs = [];
|
|
20
|
-
_type;
|
|
21
|
-
childrenType;
|
|
22
11
|
_numberOfVoices;
|
|
23
|
-
constructor(
|
|
12
|
+
constructor(params) {
|
|
24
13
|
this.id = uuidv4();
|
|
25
|
-
this._type = type;
|
|
26
|
-
this.childrenType = props.type;
|
|
27
14
|
this.audioModules = [];
|
|
28
|
-
const { props: extraProps, ...basicProps } =
|
|
15
|
+
const { child, props: extraProps, ...basicProps } = params;
|
|
16
|
+
this.child = child;
|
|
29
17
|
Object.assign(this, basicProps);
|
|
30
18
|
this.numberOfVoices = 1;
|
|
31
19
|
Object.assign(this, { props: extraProps });
|
|
32
20
|
this.registerNumberOfVoicesInput();
|
|
33
21
|
}
|
|
34
|
-
get type() {
|
|
35
|
-
return this._type;
|
|
36
|
-
}
|
|
37
22
|
get name() {
|
|
38
23
|
return this._name;
|
|
39
24
|
}
|
|
@@ -41,9 +26,6 @@ export default class PolyModule {
|
|
|
41
26
|
this._name = value;
|
|
42
27
|
this.audioModules.forEach((m) => (m.name = value));
|
|
43
28
|
}
|
|
44
|
-
// Do nothing
|
|
45
|
-
// This is a little hack to avoid override type by children module
|
|
46
|
-
set type(value) { }
|
|
47
29
|
get props() {
|
|
48
30
|
if (this.audioModules.length === 0) {
|
|
49
31
|
throw Error("There isn't any initialized module");
|
|
@@ -85,10 +67,11 @@ export default class PolyModule {
|
|
|
85
67
|
serialize() {
|
|
86
68
|
if (this.audioModules.length === 0)
|
|
87
69
|
throw Error("There isn't any initialized module");
|
|
70
|
+
const klass = this.constructor;
|
|
88
71
|
return {
|
|
89
72
|
...this.audioModules[0].serialize(),
|
|
90
73
|
id: this.id,
|
|
91
|
-
type:
|
|
74
|
+
type: klass.moduleName,
|
|
92
75
|
inputs: this.inputs.map((i) => i.serialize()),
|
|
93
76
|
outputs: this.outputs.map((i) => i.serialize()),
|
|
94
77
|
};
|
|
@@ -175,8 +158,10 @@ export default class PolyModule {
|
|
|
175
158
|
audioModule?.dispose();
|
|
176
159
|
}
|
|
177
160
|
else {
|
|
178
|
-
const props = this.audioModules.length
|
|
179
|
-
|
|
161
|
+
const props = this.audioModules.length
|
|
162
|
+
? this.props
|
|
163
|
+
: {};
|
|
164
|
+
const audioModule = new this.child(this.name, {
|
|
180
165
|
...props,
|
|
181
166
|
voiceNo: this.audioModules.length,
|
|
182
167
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolyModule.js","sourceRoot":"","sources":["../../src/Module/PolyModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"PolyModule.js","sourceRoot":"","sources":["../../src/Module/PolyModule.ts"],"names":[],"mappings":"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"}
|
package/build/Module/Reverb.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ interface ReverbInterface extends EffectInterface {
|
|
|
5
5
|
preDelay: number;
|
|
6
6
|
}
|
|
7
7
|
export default class Reverb extends Effect<InternalReverb, ReverbInterface> {
|
|
8
|
+
static moduleName: string;
|
|
8
9
|
constructor(name: string, props: Partial<ReverbInterface>);
|
|
9
10
|
get decay(): number;
|
|
10
11
|
set decay(value: number);
|
package/build/Module/Reverb.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Reverb as InternalReverb } from "tone";
|
|
2
|
-
import { ModuleType } from "./Base";
|
|
3
2
|
import Effect from "./Effect";
|
|
4
3
|
const InitialProps = {
|
|
5
4
|
decay: 1.5,
|
|
6
5
|
preDelay: 0.025,
|
|
7
6
|
};
|
|
8
7
|
export default class Reverb extends Effect {
|
|
8
|
+
static moduleName = "Reverb";
|
|
9
9
|
constructor(name, props) {
|
|
10
|
-
super(name,
|
|
10
|
+
super(name, new InternalReverb(), {
|
|
11
11
|
...InitialProps,
|
|
12
12
|
...props,
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reverb.js","sourceRoot":"","sources":["../../src/Module/Reverb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"Reverb.js","sourceRoot":"","sources":["../../src/Module/Reverb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,MAA2B,MAAM,UAAU,CAAC;AAOnD,MAAM,YAAY,GAA6B;IAC7C,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,MAAuC;IACzE,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAE7B,YAAY,IAAY,EAAE,KAA+B;QACvD,KAAK,CAAC,IAAI,EAAE,IAAI,cAAc,EAAE,EAAE;YAChC,GAAG,YAAY;YACf,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/C,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import MidiEvent from "../MidiEvent";
|
|
2
|
-
import Module, {
|
|
2
|
+
import Module, { DummnyInternalModule } from "./Base";
|
|
3
3
|
import { Output } from "./IO";
|
|
4
4
|
export interface VirtualMidiInterface {
|
|
5
5
|
activeNotes: string[];
|
|
6
6
|
}
|
|
7
7
|
export default class VirtualMidi extends Module<DummnyInternalModule, VirtualMidiInterface> {
|
|
8
|
+
static moduleName: string;
|
|
8
9
|
midiOutput: Output;
|
|
9
10
|
constructor(name: string, props: VirtualMidiInterface);
|
|
10
11
|
get activeNotes(): string[];
|
|
@@ -16,7 +17,7 @@ export default class VirtualMidi extends Module<DummnyInternalModule, VirtualMid
|
|
|
16
17
|
activeNotes: string[];
|
|
17
18
|
id: string;
|
|
18
19
|
name: string;
|
|
19
|
-
type:
|
|
20
|
+
type: string;
|
|
20
21
|
props: VirtualMidiInterface;
|
|
21
22
|
inputs: import("./IO").SerializeInterface[];
|
|
22
23
|
outputs: import("./IO").SerializeInterface[];
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import Engine from "../Engine";
|
|
2
|
-
import Module, {
|
|
2
|
+
import Module, { DummnyInternalModule } from "./Base";
|
|
3
3
|
const InitialProps = {
|
|
4
4
|
activeNotes: [],
|
|
5
5
|
};
|
|
6
6
|
export default class VirtualMidi extends Module {
|
|
7
|
+
static moduleName = "VirtualMidi";
|
|
7
8
|
midiOutput;
|
|
8
9
|
constructor(name, props) {
|
|
9
10
|
super(new DummnyInternalModule(), {
|
|
10
11
|
name,
|
|
11
12
|
props: { ...InitialProps, ...props },
|
|
12
|
-
type: ModuleType.VirtualMidi,
|
|
13
13
|
});
|
|
14
14
|
this.registerInputs();
|
|
15
15
|
this.registerOutputs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualMidi.js","sourceRoot":"","sources":["../../src/Module/VirtualMidi.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"VirtualMidi.js","sourceRoot":"","sources":["../../src/Module/VirtualMidi.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,MAAM,EAAE,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAOtD,MAAM,YAAY,GAAyB;IACzC,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAGxC;IACC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAClC,UAAU,CAAS;IAEnB,YAAY,IAAY,EAAE,KAA2B;QACnD,KAAK,CAAC,IAAI,oBAAoB,EAAE,EAAE;YAChC,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB;IACtB,IAAI,WAAW,CAAC,KAAe;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,QAAQ,CAAC,SAAoB;QAC3B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,SAAoB;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI;YAAE,OAAO;QAE5B,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,SAAoB;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI;YAAE,OAAO;QAE5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAK,CAAC,QAAQ,CAC5C,CAAC;QACF,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,SAAS;QACP,OAAO;YACL,GAAG,KAAK,CAAC,SAAS,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,aAAa,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI,CAAC,aAAa;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import Module, { DummnyInternalModule } from "./Base";
|
|
1
|
+
import Module, { DummnyInternalModule, Voicable } from "./Base";
|
|
2
2
|
import MidiEvent from "../MidiEvent";
|
|
3
3
|
import { Output } from "./IO";
|
|
4
|
-
import PolyModule
|
|
5
|
-
export interface VoiceSchedulerInterface {
|
|
4
|
+
import PolyModule from "./PolyModule";
|
|
5
|
+
export interface VoiceSchedulerInterface extends Voicable {
|
|
6
6
|
polyNumber: number;
|
|
7
7
|
}
|
|
8
8
|
export default class VoiceScheduler extends PolyModule<Voice, VoiceSchedulerInterface> {
|
|
9
|
+
static moduleName: string;
|
|
9
10
|
midiOutput: Output;
|
|
10
11
|
numberOfVoicesOut: Output;
|
|
11
12
|
constructor(name: string, props: VoiceSchedulerInterface);
|
|
@@ -15,7 +16,7 @@ export default class VoiceScheduler extends PolyModule<Voice, VoiceSchedulerInte
|
|
|
15
16
|
serialize(): {
|
|
16
17
|
props: any;
|
|
17
18
|
id: string;
|
|
18
|
-
type:
|
|
19
|
+
type: string;
|
|
19
20
|
inputs: import("./IO").SerializeInterface[];
|
|
20
21
|
outputs: import("./IO").SerializeInterface[];
|
|
21
22
|
name: string;
|
|
@@ -24,10 +25,9 @@ export default class VoiceScheduler extends PolyModule<Voice, VoiceSchedulerInte
|
|
|
24
25
|
private registerInputs;
|
|
25
26
|
private registerOutputs;
|
|
26
27
|
}
|
|
27
|
-
export interface VoiceInterface {
|
|
28
|
-
voiceNo?: number;
|
|
28
|
+
export interface VoiceInterface extends Voicable {
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
declare class Voice extends Module<DummnyInternalModule, VoiceInterface> {
|
|
31
31
|
midiEvent: MidiEvent | null;
|
|
32
32
|
activeNote: string | null;
|
|
33
33
|
triggeredAt: number;
|
|
@@ -35,3 +35,4 @@ export declare class Voice extends Module<DummnyInternalModule, VoiceInterface>
|
|
|
35
35
|
constructor(name: string, props: VoiceInterface);
|
|
36
36
|
midiTriggered: (midiEvent: MidiEvent) => void;
|
|
37
37
|
}
|
|
38
|
+
export {};
|