@blibliki/engine 0.1.16 → 0.1.18
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/.eslintrc.js +14 -0
- package/.parcerc +6 -0
- package/README.md +122 -0
- package/dist/main.cjs.js +33 -0
- package/package.json +21 -22
- package/rollup.config.mjs +21 -0
- package/src/Engine.ts +43 -42
- package/src/core/IO/AudioNode.ts +77 -0
- package/src/core/IO/Collection.ts +76 -0
- package/src/core/IO/ForwardNode.ts +192 -0
- package/src/core/IO/MidiNode.ts +67 -0
- package/src/core/IO/Node.ts +117 -0
- package/src/core/IO/index.ts +47 -0
- package/src/core/Module/MonoModule.ts +219 -0
- package/src/core/Module/PolyModule.ts +206 -0
- package/src/core/Module/index.ts +15 -0
- package/src/{Note → core/Note}/index.ts +19 -4
- package/src/{MidiDeviceManager.ts → core/midi/MidiDeviceManager.ts} +20 -15
- package/src/core/midi/MidiEvent.ts +91 -0
- package/src/core/midi/index.ts +5 -0
- package/src/index.ts +8 -12
- package/src/{Module → modules}/BitCrusher.ts +15 -4
- package/src/{Module → modules}/Delay.ts +15 -4
- package/src/{Module → modules}/Distortion.ts +15 -4
- package/src/{Module → modules}/Effect.ts +11 -7
- package/src/modules/Envelope/AmpEnvelope.ts +23 -0
- package/src/{Module → modules}/Envelope/Base.ts +50 -31
- package/src/{Module → modules}/Envelope/FreqEnvelope.ts +18 -23
- package/src/{Module → modules}/Filter.ts +18 -46
- package/src/{Module → modules}/Master.ts +8 -2
- package/src/{Module → modules}/MidiSelector.ts +18 -14
- package/src/{Module → modules}/Oscillator.ts +27 -16
- package/src/{Module → modules}/Reverb.ts +15 -4
- package/src/{Module → modules}/Sequencer.ts +17 -13
- package/src/{Module → modules}/VirtualMidi.ts +16 -12
- package/src/modules/VoiceScheduler.ts +145 -0
- package/src/{Module → modules}/Volume.ts +23 -15
- package/src/{Module → modules}/index.ts +14 -21
- package/src/routes.ts +19 -18
- package/src/types.ts +3 -0
- package/src/utils.ts +18 -0
- package/test/MockingModules.ts +27 -0
- package/test/Module/Oscillator.test.ts +1 -1
- package/test/core/IO.test.ts +172 -0
- package/build/Engine.d.ts +0 -94
- package/build/Engine.js +0 -158
- package/build/Engine.js.map +0 -1
- package/build/MidiDevice.d.ts +0 -25
- package/build/MidiDevice.js +0 -45
- package/build/MidiDevice.js.map +0 -1
- package/build/MidiDeviceManager.d.ts +0 -13
- package/build/MidiDeviceManager.js +0 -59
- package/build/MidiDeviceManager.js.map +0 -1
- package/build/MidiEvent.d.ts +0 -18
- package/build/MidiEvent.js +0 -64
- package/build/MidiEvent.js.map +0 -1
- package/build/Module/Base.d.ts +0 -65
- package/build/Module/Base.js +0 -138
- package/build/Module/Base.js.map +0 -1
- package/build/Module/BitCrusher.d.ts +0 -12
- package/build/Module/BitCrusher.js +0 -22
- package/build/Module/BitCrusher.js.map +0 -1
- package/build/Module/DataSequencer.d.ts +0 -25
- package/build/Module/DataSequencer.js +0 -72
- package/build/Module/DataSequencer.js.map +0 -1
- package/build/Module/Delay.d.ts +0 -15
- package/build/Module/Delay.js +0 -30
- package/build/Module/Delay.js.map +0 -1
- package/build/Module/Distortion.d.ts +0 -12
- package/build/Module/Distortion.js +0 -22
- package/build/Module/Distortion.js.map +0 -1
- package/build/Module/Effect.d.ts +0 -14
- package/build/Module/Effect.js +0 -22
- package/build/Module/Effect.js.map +0 -1
- package/build/Module/Envelope/AmpEnvelope.d.ts +0 -10
- package/build/Module/Envelope/AmpEnvelope.js +0 -14
- package/build/Module/Envelope/AmpEnvelope.js.map +0 -1
- package/build/Module/Envelope/Base.d.ts +0 -47
- package/build/Module/Envelope/Base.js +0 -106
- package/build/Module/Envelope/Base.js.map +0 -1
- package/build/Module/Envelope/FreqEnvelope.d.ts +0 -18
- package/build/Module/Envelope/FreqEnvelope.js +0 -50
- package/build/Module/Envelope/FreqEnvelope.js.map +0 -1
- package/build/Module/Envelope/index.d.ts +0 -3
- package/build/Module/Envelope/index.js +0 -4
- package/build/Module/Envelope/index.js.map +0 -1
- package/build/Module/Filter.d.ts +0 -37
- package/build/Module/Filter.js +0 -100
- package/build/Module/Filter.js.map +0 -1
- package/build/Module/IO.d.ts +0 -39
- package/build/Module/IO.js +0 -59
- package/build/Module/IO.js.map +0 -1
- package/build/Module/Master.d.ts +0 -8
- package/build/Module/Master.js +0 -12
- package/build/Module/Master.js.map +0 -1
- package/build/Module/MidiSelector.d.ts +0 -17
- package/build/Module/MidiSelector.js +0 -50
- package/build/Module/MidiSelector.js.map +0 -1
- package/build/Module/Oscillator.d.ts +0 -45
- package/build/Module/Oscillator.js +0 -136
- package/build/Module/Oscillator.js.map +0 -1
- package/build/Module/PolyModule.d.ts +0 -49
- package/build/Module/PolyModule.js +0 -175
- package/build/Module/PolyModule.js.map +0 -1
- package/build/Module/Reverb.d.ts +0 -15
- package/build/Module/Reverb.js +0 -30
- package/build/Module/Reverb.js.map +0 -1
- package/build/Module/Sequencer.d.ts +0 -38
- package/build/Module/Sequencer.js +0 -131
- package/build/Module/Sequencer.js.map +0 -1
- package/build/Module/VirtualMidi.d.ts +0 -28
- package/build/Module/VirtualMidi.js +0 -53
- package/build/Module/VirtualMidi.js.map +0 -1
- package/build/Module/VoiceScheduler.d.ts +0 -38
- package/build/Module/VoiceScheduler.js +0 -130
- package/build/Module/VoiceScheduler.js.map +0 -1
- package/build/Module/Volume.d.ts +0 -20
- package/build/Module/Volume.js +0 -48
- package/build/Module/Volume.js.map +0 -1
- package/build/Module/index.d.ts +0 -14
- package/build/Module/index.js +0 -66
- package/build/Module/index.js.map +0 -1
- package/build/Note/frequencyTable.d.ts +0 -4
- package/build/Note/frequencyTable.js +0 -146
- package/build/Note/frequencyTable.js.map +0 -1
- package/build/Note/index.d.ts +0 -25
- package/build/Note/index.js +0 -81
- package/build/Note/index.js.map +0 -1
- package/build/index.d.ts +0 -8
- package/build/index.js +0 -5
- package/build/index.js.map +0 -1
- package/build/routes.d.ts +0 -17
- package/build/routes.js +0 -31
- package/build/routes.js.map +0 -1
- package/src/MidiEvent.ts +0 -93
- package/src/Module/Base.ts +0 -220
- package/src/Module/DataSequencer.ts +0 -101
- package/src/Module/Envelope/AmpEnvelope.ts +0 -17
- package/src/Module/IO.ts +0 -85
- package/src/Module/PolyModule.ts +0 -234
- package/src/Module/VoiceScheduler.ts +0 -161
- /package/src/{Note → core/Note}/frequencyTable.ts +0 -0
- /package/src/{MidiDevice.ts → core/midi/MidiDevice.ts} +0 -0
- /package/src/{Module → modules}/Envelope/index.ts +0 -0
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Envelope as Env } from "tone";
|
|
2
|
-
import Module from "../Base";
|
|
3
|
-
import PolyModule from "../PolyModule";
|
|
4
|
-
export var EnvelopeStages;
|
|
5
|
-
(function (EnvelopeStages) {
|
|
6
|
-
EnvelopeStages["Attack"] = "attack";
|
|
7
|
-
EnvelopeStages["Decay"] = "decay";
|
|
8
|
-
EnvelopeStages["Sustain"] = "sustain";
|
|
9
|
-
EnvelopeStages["Release"] = "release";
|
|
10
|
-
})(EnvelopeStages || (EnvelopeStages = {}));
|
|
11
|
-
const MAX_TIME = 2;
|
|
12
|
-
const MIN_TIME = 0.01;
|
|
13
|
-
const SUSTAIN_MAX_VALUE = 1;
|
|
14
|
-
const SUSTAIN_MIN_VALUE = 0;
|
|
15
|
-
const InitialProps = {
|
|
16
|
-
attack: MIN_TIME,
|
|
17
|
-
decay: MIN_TIME,
|
|
18
|
-
sustain: SUSTAIN_MAX_VALUE,
|
|
19
|
-
release: MIN_TIME,
|
|
20
|
-
};
|
|
21
|
-
export default class EnvelopeModule extends Module {
|
|
22
|
-
activeNote;
|
|
23
|
-
triggeredAt;
|
|
24
|
-
constructor(name, internalModule, props) {
|
|
25
|
-
super(internalModule, {
|
|
26
|
-
name,
|
|
27
|
-
props: { ...InitialProps, ...props },
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
get attack() {
|
|
31
|
-
return this._props["attack"];
|
|
32
|
-
}
|
|
33
|
-
set attack(value) {
|
|
34
|
-
this.setStage(EnvelopeStages.Attack, value);
|
|
35
|
-
}
|
|
36
|
-
get decay() {
|
|
37
|
-
return this._props["decay"];
|
|
38
|
-
}
|
|
39
|
-
set decay(value) {
|
|
40
|
-
this.setStage(EnvelopeStages.Decay, value);
|
|
41
|
-
}
|
|
42
|
-
get sustain() {
|
|
43
|
-
return this._props["sustain"];
|
|
44
|
-
}
|
|
45
|
-
set sustain(value) {
|
|
46
|
-
this.setStage(EnvelopeStages.Sustain, value);
|
|
47
|
-
}
|
|
48
|
-
get release() {
|
|
49
|
-
return this._props["release"];
|
|
50
|
-
}
|
|
51
|
-
set release(value) {
|
|
52
|
-
this.setStage(EnvelopeStages.Release, value);
|
|
53
|
-
}
|
|
54
|
-
setStage(stage, value) {
|
|
55
|
-
const calculatedValue = value === 0 ? this.minTime(stage) : this.maxTime(stage) * value;
|
|
56
|
-
this._props = { ...this.props, [stage]: value };
|
|
57
|
-
this.internalModule[stage] = calculatedValue;
|
|
58
|
-
}
|
|
59
|
-
triggerAttack = (note, triggeredAt) => {
|
|
60
|
-
this.activeNote = note.fullName;
|
|
61
|
-
this.triggeredAt = triggeredAt;
|
|
62
|
-
this.internalModule.triggerAttack(triggeredAt, note.velocity);
|
|
63
|
-
};
|
|
64
|
-
triggerRelease = (note, triggeredAt) => {
|
|
65
|
-
this.internalModule.triggerRelease(triggeredAt);
|
|
66
|
-
};
|
|
67
|
-
maxTime(stage) {
|
|
68
|
-
return stage === EnvelopeStages.Sustain ? SUSTAIN_MAX_VALUE : MAX_TIME;
|
|
69
|
-
}
|
|
70
|
-
minTime(stage) {
|
|
71
|
-
return stage === EnvelopeStages.Sustain ? SUSTAIN_MIN_VALUE : MIN_TIME;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
export class PolyBase extends PolyModule {
|
|
75
|
-
constructor(name, child, props) {
|
|
76
|
-
super({
|
|
77
|
-
name,
|
|
78
|
-
child,
|
|
79
|
-
props: { ...InitialProps, ...props },
|
|
80
|
-
});
|
|
81
|
-
this.registerBasicInputs();
|
|
82
|
-
this.registerBasicOutputs();
|
|
83
|
-
this.registerInputs();
|
|
84
|
-
}
|
|
85
|
-
registerInputs() {
|
|
86
|
-
this.registerInput({
|
|
87
|
-
name: "midi in",
|
|
88
|
-
pluggable: this.midiTriggered,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
class MonoEnvelope extends EnvelopeModule {
|
|
93
|
-
constructor(name, props) {
|
|
94
|
-
super(name, new Env(), props);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
export class Envelope extends PolyBase {
|
|
98
|
-
static moduleName = "Envelope";
|
|
99
|
-
constructor(name, props) {
|
|
100
|
-
super(name, MonoEnvelope, {
|
|
101
|
-
...InitialProps,
|
|
102
|
-
...props,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=Base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/Module/Envelope/Base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { FrequencyEnvelope } from "tone";
|
|
2
|
-
import Filter from "../Filter";
|
|
3
|
-
import Base, { EnvelopeInterface, PolyBase } from "./Base";
|
|
4
|
-
export declare class MonoFreqEnvelope extends Base<FrequencyEnvelope> {
|
|
5
|
-
private _frequency;
|
|
6
|
-
private _amount;
|
|
7
|
-
filter: Filter;
|
|
8
|
-
constructor(name: string, props: EnvelopeInterface);
|
|
9
|
-
get frequency(): number;
|
|
10
|
-
set frequency(value: number);
|
|
11
|
-
get amount(): number;
|
|
12
|
-
set amount(value: number);
|
|
13
|
-
}
|
|
14
|
-
export default class FreqEnvelope extends PolyBase<MonoFreqEnvelope> {
|
|
15
|
-
static moduleName: string;
|
|
16
|
-
constructor(name: string, props: Partial<EnvelopeInterface>);
|
|
17
|
-
protected registerOutputs(): void;
|
|
18
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { FrequencyEnvelope } from "tone";
|
|
2
|
-
import Base, { PolyBase } from "./Base";
|
|
3
|
-
const InitialProps = {
|
|
4
|
-
amount: 0,
|
|
5
|
-
};
|
|
6
|
-
export class MonoFreqEnvelope extends Base {
|
|
7
|
-
_frequency;
|
|
8
|
-
_amount;
|
|
9
|
-
filter;
|
|
10
|
-
constructor(name, props) {
|
|
11
|
-
super(name, new FrequencyEnvelope(), {
|
|
12
|
-
...InitialProps,
|
|
13
|
-
...props,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
get frequency() {
|
|
17
|
-
return this._frequency;
|
|
18
|
-
}
|
|
19
|
-
set frequency(value) {
|
|
20
|
-
this._frequency = value;
|
|
21
|
-
this.internalModule.baseFrequency = value;
|
|
22
|
-
}
|
|
23
|
-
get amount() {
|
|
24
|
-
return this._amount;
|
|
25
|
-
}
|
|
26
|
-
set amount(value) {
|
|
27
|
-
this._amount = value;
|
|
28
|
-
this.internalModule.octaves = value;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export default class FreqEnvelope extends PolyBase {
|
|
32
|
-
static moduleName = "FreqEnvelope";
|
|
33
|
-
constructor(name, props) {
|
|
34
|
-
super(name, MonoFreqEnvelope, props);
|
|
35
|
-
this.registerOutputs();
|
|
36
|
-
}
|
|
37
|
-
registerOutputs() {
|
|
38
|
-
this.registerOutput({
|
|
39
|
-
name: "frequency",
|
|
40
|
-
pluggable: this,
|
|
41
|
-
onPlug: (output) => {
|
|
42
|
-
this.connect(output.audioModule, output.pluggable);
|
|
43
|
-
},
|
|
44
|
-
onUnPlug: (output) => {
|
|
45
|
-
this.disconnect(output.audioModule, output.pluggable);
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=FreqEnvelope.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FreqEnvelope.js","sourceRoot":"","sources":["../../../src/Module/Envelope/FreqEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAKzC,OAAO,IAAI,EAAE,EAAqB,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAM3D,MAAM,YAAY,GAA0B;IAC1C,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,IAAuB;IACnD,UAAU,CAAS;IACnB,OAAO,CAAS;IACxB,MAAM,CAAS;IAEf,YAAY,IAAY,EAAE,KAAwB;QAChD,KAAK,CAAC,IAAI,EAAE,IAAI,iBAAiB,EAAE,EAAE;YACnC,GAAG,YAAY;YACf,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IACtC,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,QAA0B;IAClE,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC;IAEnC,YAAY,IAAY,EAAE,KAAiC;QACzD,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,cAAc,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Filter as InternalFilter, FilterRollOff } from "tone";
|
|
2
|
-
import { FreqEnvelope, MonoFreqEnvelope } from "./Envelope";
|
|
3
|
-
import Module, { Voicable } from "./Base";
|
|
4
|
-
import PolyModule from "./PolyModule";
|
|
5
|
-
interface FilterInterface extends Voicable {
|
|
6
|
-
cutoff: number;
|
|
7
|
-
filterType: BiquadFilterType;
|
|
8
|
-
resonance: number;
|
|
9
|
-
slope: FilterRollOff;
|
|
10
|
-
envelopeAmount: number;
|
|
11
|
-
voiceNo?: number;
|
|
12
|
-
}
|
|
13
|
-
interface FilterProps extends Partial<FilterInterface> {
|
|
14
|
-
}
|
|
15
|
-
declare class MonoFilter extends Module<InternalFilter, FilterInterface> {
|
|
16
|
-
private _envelope;
|
|
17
|
-
constructor(name: string, props: FilterProps);
|
|
18
|
-
get cutoff(): number;
|
|
19
|
-
set cutoff(value: number);
|
|
20
|
-
get filterType(): BiquadFilterType;
|
|
21
|
-
set filterType(value: BiquadFilterType);
|
|
22
|
-
get slope(): FilterRollOff;
|
|
23
|
-
set slope(value: FilterRollOff);
|
|
24
|
-
get frequency(): import("tone").Signal<"frequency">;
|
|
25
|
-
get resonance(): number;
|
|
26
|
-
set resonance(value: number);
|
|
27
|
-
get envelopeAmount(): number;
|
|
28
|
-
set envelopeAmount(value: number);
|
|
29
|
-
conntectedEnvelope(envelope: MonoFreqEnvelope): void;
|
|
30
|
-
}
|
|
31
|
-
export default class Filter extends PolyModule<MonoFilter, FilterInterface> {
|
|
32
|
-
static moduleName: string;
|
|
33
|
-
constructor(name: string, props: Partial<FilterInterface>);
|
|
34
|
-
private registerInputs;
|
|
35
|
-
conntectedEnvelope(freqEnvelope: FreqEnvelope): void;
|
|
36
|
-
}
|
|
37
|
-
export {};
|
package/build/Module/Filter.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { Filter as InternalFilter } from "tone";
|
|
2
|
-
import Module from "./Base";
|
|
3
|
-
import PolyModule from "./PolyModule";
|
|
4
|
-
const InitialProps = {
|
|
5
|
-
cutoff: 20000,
|
|
6
|
-
resonance: 0,
|
|
7
|
-
envelopeAmount: 0,
|
|
8
|
-
slope: -24,
|
|
9
|
-
filterType: "lowpass",
|
|
10
|
-
};
|
|
11
|
-
class MonoFilter extends Module {
|
|
12
|
-
_envelope;
|
|
13
|
-
constructor(name, props) {
|
|
14
|
-
super(new InternalFilter({ type: "lowpass" }), {
|
|
15
|
-
name,
|
|
16
|
-
props: { ...InitialProps, ...props },
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
get cutoff() {
|
|
20
|
-
return this._props["cutoff"];
|
|
21
|
-
}
|
|
22
|
-
set cutoff(value) {
|
|
23
|
-
this._props = { ...this.props, cutoff: value };
|
|
24
|
-
if (this._envelope) {
|
|
25
|
-
this._envelope.frequency = value;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.internalModule.frequency.value = value;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
get filterType() {
|
|
32
|
-
return this._props["filterType"];
|
|
33
|
-
}
|
|
34
|
-
set filterType(value) {
|
|
35
|
-
this._props = { ...this.props, filterType: value };
|
|
36
|
-
this.internalModule.type = value;
|
|
37
|
-
}
|
|
38
|
-
get slope() {
|
|
39
|
-
return this._props["slope"];
|
|
40
|
-
}
|
|
41
|
-
set slope(value) {
|
|
42
|
-
this._props = { ...this.props, slope: value };
|
|
43
|
-
this.internalModule.rolloff = value;
|
|
44
|
-
}
|
|
45
|
-
get frequency() {
|
|
46
|
-
return this.internalModule.frequency;
|
|
47
|
-
}
|
|
48
|
-
get resonance() {
|
|
49
|
-
return this._props["resonance"];
|
|
50
|
-
}
|
|
51
|
-
set resonance(value) {
|
|
52
|
-
this._props = { ...this.props, resonance: value };
|
|
53
|
-
this.internalModule.Q.value = value;
|
|
54
|
-
}
|
|
55
|
-
get envelopeAmount() {
|
|
56
|
-
return this._props["envelopeAmount"];
|
|
57
|
-
}
|
|
58
|
-
set envelopeAmount(value) {
|
|
59
|
-
this._props = { ...this.props, envelopeAmount: value };
|
|
60
|
-
if (!this._envelope)
|
|
61
|
-
return;
|
|
62
|
-
this._envelope.amount = value;
|
|
63
|
-
}
|
|
64
|
-
conntectedEnvelope(envelope) {
|
|
65
|
-
this._envelope = envelope;
|
|
66
|
-
this._envelope.frequency = this.cutoff;
|
|
67
|
-
this._envelope.amount = this.envelopeAmount;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export default class Filter extends PolyModule {
|
|
71
|
-
static moduleName = "Filter";
|
|
72
|
-
constructor(name, props) {
|
|
73
|
-
super({
|
|
74
|
-
name,
|
|
75
|
-
child: MonoFilter,
|
|
76
|
-
props: { ...InitialProps, ...props },
|
|
77
|
-
});
|
|
78
|
-
this.registerBasicInputs();
|
|
79
|
-
this.registerBasicOutputs();
|
|
80
|
-
this.registerInputs();
|
|
81
|
-
}
|
|
82
|
-
registerInputs() {
|
|
83
|
-
this.registerInput({
|
|
84
|
-
name: "frequency",
|
|
85
|
-
pluggable: "frequency",
|
|
86
|
-
onPlug: (output) => {
|
|
87
|
-
this.conntectedEnvelope(output.audioModule);
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
conntectedEnvelope(freqEnvelope) {
|
|
92
|
-
freqEnvelope.audioModules.forEach((envelope) => {
|
|
93
|
-
if (envelope.voiceNo === undefined)
|
|
94
|
-
return;
|
|
95
|
-
const filter = this.findVoice(envelope.voiceNo);
|
|
96
|
-
filter?.conntectedEnvelope(envelope);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=Filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/Module/Filter.ts"],"names":[],"mappings":"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"}
|
package/build/Module/IO.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { AudioModule } from "../Module";
|
|
2
|
-
export interface IOInterface {
|
|
3
|
-
name: string;
|
|
4
|
-
pluggable?: any;
|
|
5
|
-
onPlug?: (io: IO) => void;
|
|
6
|
-
onUnPlug?: (io: IO) => void;
|
|
7
|
-
}
|
|
8
|
-
export interface SerializeInterface {
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
moduleId: string;
|
|
12
|
-
moduleName: string;
|
|
13
|
-
}
|
|
14
|
-
declare enum IOType {
|
|
15
|
-
Input = "input",
|
|
16
|
-
Output = "output"
|
|
17
|
-
}
|
|
18
|
-
declare abstract class IO {
|
|
19
|
-
id: string;
|
|
20
|
-
ioType: IOType;
|
|
21
|
-
name: string;
|
|
22
|
-
audioModule: AudioModule;
|
|
23
|
-
pluggable: any;
|
|
24
|
-
onPlug: (io: IO) => void;
|
|
25
|
-
onUnPlug: (io: IO) => void;
|
|
26
|
-
connections: Input[] | Output[];
|
|
27
|
-
constructor(ioType: IOType, audioModule: AudioModule, props: IOInterface);
|
|
28
|
-
plug(io: IO): void;
|
|
29
|
-
unPlug(io: IO): void;
|
|
30
|
-
unPlugAll(): void;
|
|
31
|
-
serialize(): SerializeInterface;
|
|
32
|
-
}
|
|
33
|
-
export declare class Input extends IO {
|
|
34
|
-
constructor(audioModule: AudioModule, props: IOInterface);
|
|
35
|
-
}
|
|
36
|
-
export declare class Output extends IO {
|
|
37
|
-
constructor(audioModule: AudioModule, props: IOInterface);
|
|
38
|
-
}
|
|
39
|
-
export {};
|
package/build/Module/IO.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { v4 as uuidv4 } from "uuid";
|
|
2
|
-
var IOType;
|
|
3
|
-
(function (IOType) {
|
|
4
|
-
IOType["Input"] = "input";
|
|
5
|
-
IOType["Output"] = "output";
|
|
6
|
-
})(IOType || (IOType = {}));
|
|
7
|
-
class IO {
|
|
8
|
-
id;
|
|
9
|
-
ioType;
|
|
10
|
-
name;
|
|
11
|
-
audioModule;
|
|
12
|
-
pluggable;
|
|
13
|
-
onPlug;
|
|
14
|
-
onUnPlug;
|
|
15
|
-
connections = [];
|
|
16
|
-
constructor(ioType, audioModule, props) {
|
|
17
|
-
this.id = uuidv4();
|
|
18
|
-
this.ioType = ioType;
|
|
19
|
-
this.audioModule = audioModule;
|
|
20
|
-
Object.assign(this, props);
|
|
21
|
-
}
|
|
22
|
-
plug(io) {
|
|
23
|
-
this.connections.push(io);
|
|
24
|
-
if (this.onPlug)
|
|
25
|
-
this.onPlug(io);
|
|
26
|
-
if (this.ioType === IOType.Output)
|
|
27
|
-
io.plug(this);
|
|
28
|
-
}
|
|
29
|
-
unPlug(io) {
|
|
30
|
-
if (this.onUnPlug)
|
|
31
|
-
this.onUnPlug(io);
|
|
32
|
-
if (this.ioType === IOType.Output) {
|
|
33
|
-
io.unPlug(this);
|
|
34
|
-
}
|
|
35
|
-
this.connections = this.connections.filter((current_io) => current_io.id !== io.id);
|
|
36
|
-
}
|
|
37
|
-
unPlugAll() {
|
|
38
|
-
this.connections.forEach((c) => this.unPlug(c));
|
|
39
|
-
}
|
|
40
|
-
serialize() {
|
|
41
|
-
return {
|
|
42
|
-
id: this.id,
|
|
43
|
-
name: this.name,
|
|
44
|
-
moduleId: this.audioModule.id,
|
|
45
|
-
moduleName: this.audioModule.name,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
export class Input extends IO {
|
|
50
|
-
constructor(audioModule, props) {
|
|
51
|
-
super(IOType.Input, audioModule, props);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export class Output extends IO {
|
|
55
|
-
constructor(audioModule, props) {
|
|
56
|
-
super(IOType.Output, audioModule, props);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=IO.js.map
|
package/build/Module/IO.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IO.js","sourceRoot":"","sources":["../../src/Module/IO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAiBpC,IAAK,MAGJ;AAHD,WAAK,MAAM;IACT,yBAAe,CAAA;IACf,2BAAiB,CAAA;AACnB,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;AAED,MAAe,EAAE;IACf,EAAE,CAAS;IACX,MAAM,CAAS;IACf,IAAI,CAAS;IACb,WAAW,CAAc;IACzB,SAAS,CAAM;IACf,MAAM,CAAmB;IACzB,QAAQ,CAAmB;IAC3B,WAAW,GAAuB,EAAE,CAAC;IAErC,YAAY,MAAc,EAAE,WAAwB,EAAE,KAAkB;QACtE,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,EAAM;QACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,EAAM;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;YACjC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACjB;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CACxC,CAAC;IACJ,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,SAAS;QACP,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SAClC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,EAAE;IAC3B,YAAY,WAAwB,EAAE,KAAkB;QACtD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,EAAE;IAC5B,YAAY,WAAwB,EAAE,KAAkB;QACtD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
package/build/Module/Master.d.ts
DELETED
package/build/Module/Master.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { getDestination } from "tone";
|
|
2
|
-
import Module from "./Base";
|
|
3
|
-
export default class Master extends Module {
|
|
4
|
-
static moduleName = "Master";
|
|
5
|
-
constructor() {
|
|
6
|
-
super(getDestination(), {
|
|
7
|
-
name: "Master",
|
|
8
|
-
});
|
|
9
|
-
this.registerBasicInputs();
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=Master.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import Module, { DummnyInternalModule } from "./Base";
|
|
2
|
-
import { Output } from "./IO";
|
|
3
|
-
export interface MidiSelectorInterface {
|
|
4
|
-
selectedId: string | null;
|
|
5
|
-
}
|
|
6
|
-
export default class MidiSelector extends Module<DummnyInternalModule, MidiSelectorInterface> {
|
|
7
|
-
static moduleName: string;
|
|
8
|
-
midiOutput: Output;
|
|
9
|
-
constructor(name: string, props: Partial<MidiSelectorInterface>);
|
|
10
|
-
get selectedId(): string | null;
|
|
11
|
-
set selectedId(value: string | null);
|
|
12
|
-
dispose(): void;
|
|
13
|
-
private registerOutputs;
|
|
14
|
-
private onMidiEvent;
|
|
15
|
-
private addEventListener;
|
|
16
|
-
private removeEventListener;
|
|
17
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import Engine from "../Engine";
|
|
2
|
-
import Module, { DummnyInternalModule } from "./Base";
|
|
3
|
-
const InitialProps = {
|
|
4
|
-
selectedId: null,
|
|
5
|
-
};
|
|
6
|
-
export default class MidiSelector extends Module {
|
|
7
|
-
static moduleName = "MidiSelector";
|
|
8
|
-
midiOutput;
|
|
9
|
-
constructor(name, props) {
|
|
10
|
-
super(new DummnyInternalModule(), {
|
|
11
|
-
name,
|
|
12
|
-
props: { ...InitialProps, ...props },
|
|
13
|
-
});
|
|
14
|
-
this.registerOutputs();
|
|
15
|
-
this.addEventListener(this.selectedId);
|
|
16
|
-
}
|
|
17
|
-
get selectedId() {
|
|
18
|
-
return this._props["selectedId"];
|
|
19
|
-
}
|
|
20
|
-
set selectedId(value) {
|
|
21
|
-
this.removeEventListener();
|
|
22
|
-
this._props = { ...this.props, selectedId: value };
|
|
23
|
-
this.addEventListener(value);
|
|
24
|
-
}
|
|
25
|
-
dispose() {
|
|
26
|
-
this.removeEventListener();
|
|
27
|
-
super.dispose();
|
|
28
|
-
}
|
|
29
|
-
registerOutputs() {
|
|
30
|
-
this.midiOutput = this.registerOutput({ name: "midi out" });
|
|
31
|
-
}
|
|
32
|
-
onMidiEvent = (midiEvent) => {
|
|
33
|
-
this.midiOutput.connections.forEach((input) => {
|
|
34
|
-
input.pluggable(midiEvent);
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
addEventListener(midiId) {
|
|
38
|
-
if (!this.onMidiEvent || !midiId)
|
|
39
|
-
return; // Ugly hack because of weird super bug
|
|
40
|
-
const midiDevice = Engine.midiDeviceManager.find(midiId);
|
|
41
|
-
midiDevice?.addEventListener(this.onMidiEvent);
|
|
42
|
-
}
|
|
43
|
-
removeEventListener() {
|
|
44
|
-
if (!this.selectedId)
|
|
45
|
-
return;
|
|
46
|
-
const midiDevice = Engine.midiDeviceManager.find(this.selectedId);
|
|
47
|
-
midiDevice?.removeEventListener(this.onMidiEvent);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=MidiSelector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,45 +0,0 @@
|
|
|
1
|
-
import { Oscillator as Osc } from "tone";
|
|
2
|
-
import Note from "../Note";
|
|
3
|
-
import Module, { Voicable } from "./Base";
|
|
4
|
-
import PolyModule from "./PolyModule";
|
|
5
|
-
export interface OscillatorInterface extends Voicable {
|
|
6
|
-
noteName: string;
|
|
7
|
-
fine: number;
|
|
8
|
-
coarse: number;
|
|
9
|
-
wave: string;
|
|
10
|
-
volume: number;
|
|
11
|
-
range: number;
|
|
12
|
-
}
|
|
13
|
-
declare class MonoOscillator extends Module<Osc, OscillatorInterface> {
|
|
14
|
-
private _note;
|
|
15
|
-
constructor(name: string, props: Partial<OscillatorInterface>);
|
|
16
|
-
get note(): Note;
|
|
17
|
-
setNoteAt(value: Note | string, time: number): void;
|
|
18
|
-
set note(value: Note | string);
|
|
19
|
-
get noteName(): string;
|
|
20
|
-
set noteName(value: string);
|
|
21
|
-
get fine(): number;
|
|
22
|
-
set fine(value: number);
|
|
23
|
-
get coarse(): number;
|
|
24
|
-
set coarse(value: number);
|
|
25
|
-
get wave(): string;
|
|
26
|
-
set wave(value: string);
|
|
27
|
-
get volume(): number;
|
|
28
|
-
set volume(value: number);
|
|
29
|
-
get range(): number;
|
|
30
|
-
set range(value: number);
|
|
31
|
-
start(time: number): void;
|
|
32
|
-
stop(time?: number): void;
|
|
33
|
-
triggerAttack: (note: Note, triggeredAt: number) => void;
|
|
34
|
-
triggerRelease: (note: Note, triggeredAt: number) => void;
|
|
35
|
-
private updateFrequency;
|
|
36
|
-
private getNote;
|
|
37
|
-
}
|
|
38
|
-
export default class Oscillator extends PolyModule<MonoOscillator, OscillatorInterface> {
|
|
39
|
-
static moduleName: string;
|
|
40
|
-
constructor(name: string, props: Partial<OscillatorInterface>);
|
|
41
|
-
start(time: number): void;
|
|
42
|
-
stop(time?: number): void;
|
|
43
|
-
private registerInputs;
|
|
44
|
-
}
|
|
45
|
-
export {};
|