@blibliki/engine 0.1.17 → 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.
Files changed (144) hide show
  1. package/.eslintrc.js +14 -0
  2. package/.parcerc +6 -0
  3. package/README.md +13 -1
  4. package/dist/main.cjs.js +33 -0
  5. package/package.json +21 -22
  6. package/rollup.config.mjs +21 -0
  7. package/src/Engine.ts +27 -36
  8. package/src/core/IO/AudioNode.ts +77 -0
  9. package/src/core/IO/Collection.ts +76 -0
  10. package/src/core/IO/ForwardNode.ts +192 -0
  11. package/src/core/IO/MidiNode.ts +67 -0
  12. package/src/core/IO/Node.ts +117 -0
  13. package/src/core/IO/index.ts +47 -0
  14. package/src/core/Module/MonoModule.ts +219 -0
  15. package/src/core/Module/PolyModule.ts +206 -0
  16. package/src/core/Module/index.ts +15 -0
  17. package/src/{Note → core/Note}/index.ts +19 -4
  18. package/src/{MidiDeviceManager.ts → core/midi/MidiDeviceManager.ts} +20 -15
  19. package/src/core/midi/MidiEvent.ts +91 -0
  20. package/src/core/midi/index.ts +5 -0
  21. package/src/index.ts +8 -12
  22. package/src/{Module → modules}/BitCrusher.ts +15 -4
  23. package/src/{Module → modules}/Delay.ts +15 -4
  24. package/src/{Module → modules}/Distortion.ts +15 -4
  25. package/src/{Module → modules}/Effect.ts +10 -6
  26. package/src/modules/Envelope/AmpEnvelope.ts +23 -0
  27. package/src/{Module → modules}/Envelope/Base.ts +50 -31
  28. package/src/{Module → modules}/Envelope/FreqEnvelope.ts +18 -23
  29. package/src/{Module → modules}/Filter.ts +18 -46
  30. package/src/{Module → modules}/Master.ts +8 -2
  31. package/src/{Module → modules}/MidiSelector.ts +18 -14
  32. package/src/{Module → modules}/Oscillator.ts +27 -16
  33. package/src/{Module → modules}/Reverb.ts +15 -4
  34. package/src/{Module → modules}/Sequencer.ts +17 -13
  35. package/src/{Module → modules}/VirtualMidi.ts +16 -12
  36. package/src/modules/VoiceScheduler.ts +145 -0
  37. package/src/{Module → modules}/Volume.ts +23 -15
  38. package/src/{Module → modules}/index.ts +14 -21
  39. package/src/routes.ts +19 -18
  40. package/src/types.ts +3 -0
  41. package/src/utils.ts +18 -0
  42. package/test/MockingModules.ts +27 -0
  43. package/test/Module/Oscillator.test.ts +1 -1
  44. package/test/core/IO.test.ts +172 -0
  45. package/build/Engine.d.ts +0 -89
  46. package/build/Engine.js +0 -165
  47. package/build/Engine.js.map +0 -1
  48. package/build/MidiDevice.d.ts +0 -25
  49. package/build/MidiDevice.js +0 -45
  50. package/build/MidiDevice.js.map +0 -1
  51. package/build/MidiDeviceManager.d.ts +0 -13
  52. package/build/MidiDeviceManager.js +0 -59
  53. package/build/MidiDeviceManager.js.map +0 -1
  54. package/build/MidiEvent.d.ts +0 -18
  55. package/build/MidiEvent.js +0 -64
  56. package/build/MidiEvent.js.map +0 -1
  57. package/build/Module/Base.d.ts +0 -63
  58. package/build/Module/Base.js +0 -138
  59. package/build/Module/Base.js.map +0 -1
  60. package/build/Module/BitCrusher.d.ts +0 -12
  61. package/build/Module/BitCrusher.js +0 -22
  62. package/build/Module/BitCrusher.js.map +0 -1
  63. package/build/Module/DataSequencer.d.ts +0 -26
  64. package/build/Module/DataSequencer.js +0 -91
  65. package/build/Module/DataSequencer.js.map +0 -1
  66. package/build/Module/Delay.d.ts +0 -15
  67. package/build/Module/Delay.js +0 -30
  68. package/build/Module/Delay.js.map +0 -1
  69. package/build/Module/Distortion.d.ts +0 -12
  70. package/build/Module/Distortion.js +0 -22
  71. package/build/Module/Distortion.js.map +0 -1
  72. package/build/Module/Effect.d.ts +0 -14
  73. package/build/Module/Effect.js +0 -22
  74. package/build/Module/Effect.js.map +0 -1
  75. package/build/Module/Envelope/AmpEnvelope.d.ts +0 -10
  76. package/build/Module/Envelope/AmpEnvelope.js +0 -14
  77. package/build/Module/Envelope/AmpEnvelope.js.map +0 -1
  78. package/build/Module/Envelope/Base.d.ts +0 -47
  79. package/build/Module/Envelope/Base.js +0 -106
  80. package/build/Module/Envelope/Base.js.map +0 -1
  81. package/build/Module/Envelope/FreqEnvelope.d.ts +0 -18
  82. package/build/Module/Envelope/FreqEnvelope.js +0 -50
  83. package/build/Module/Envelope/FreqEnvelope.js.map +0 -1
  84. package/build/Module/Envelope/index.d.ts +0 -3
  85. package/build/Module/Envelope/index.js +0 -4
  86. package/build/Module/Envelope/index.js.map +0 -1
  87. package/build/Module/Filter.d.ts +0 -37
  88. package/build/Module/Filter.js +0 -100
  89. package/build/Module/Filter.js.map +0 -1
  90. package/build/Module/IO.d.ts +0 -39
  91. package/build/Module/IO.js +0 -59
  92. package/build/Module/IO.js.map +0 -1
  93. package/build/Module/Master.d.ts +0 -8
  94. package/build/Module/Master.js +0 -12
  95. package/build/Module/Master.js.map +0 -1
  96. package/build/Module/MidiSelector.d.ts +0 -17
  97. package/build/Module/MidiSelector.js +0 -50
  98. package/build/Module/MidiSelector.js.map +0 -1
  99. package/build/Module/Oscillator.d.ts +0 -45
  100. package/build/Module/Oscillator.js +0 -136
  101. package/build/Module/Oscillator.js.map +0 -1
  102. package/build/Module/PolyModule.d.ts +0 -49
  103. package/build/Module/PolyModule.js +0 -175
  104. package/build/Module/PolyModule.js.map +0 -1
  105. package/build/Module/Reverb.d.ts +0 -15
  106. package/build/Module/Reverb.js +0 -30
  107. package/build/Module/Reverb.js.map +0 -1
  108. package/build/Module/Sequencer.d.ts +0 -38
  109. package/build/Module/Sequencer.js +0 -131
  110. package/build/Module/Sequencer.js.map +0 -1
  111. package/build/Module/VirtualMidi.d.ts +0 -28
  112. package/build/Module/VirtualMidi.js +0 -53
  113. package/build/Module/VirtualMidi.js.map +0 -1
  114. package/build/Module/VoiceScheduler.d.ts +0 -38
  115. package/build/Module/VoiceScheduler.js +0 -130
  116. package/build/Module/VoiceScheduler.js.map +0 -1
  117. package/build/Module/Volume.d.ts +0 -20
  118. package/build/Module/Volume.js +0 -48
  119. package/build/Module/Volume.js.map +0 -1
  120. package/build/Module/index.d.ts +0 -14
  121. package/build/Module/index.js +0 -66
  122. package/build/Module/index.js.map +0 -1
  123. package/build/Note/frequencyTable.d.ts +0 -4
  124. package/build/Note/frequencyTable.js +0 -146
  125. package/build/Note/frequencyTable.js.map +0 -1
  126. package/build/Note/index.d.ts +0 -25
  127. package/build/Note/index.js +0 -81
  128. package/build/Note/index.js.map +0 -1
  129. package/build/index.d.ts +0 -8
  130. package/build/index.js +0 -5
  131. package/build/index.js.map +0 -1
  132. package/build/routes.d.ts +0 -17
  133. package/build/routes.js +0 -31
  134. package/build/routes.js.map +0 -1
  135. package/src/MidiEvent.ts +0 -93
  136. package/src/Module/Base.ts +0 -223
  137. package/src/Module/DataSequencer.ts +0 -121
  138. package/src/Module/Envelope/AmpEnvelope.ts +0 -17
  139. package/src/Module/IO.ts +0 -85
  140. package/src/Module/PolyModule.ts +0 -234
  141. package/src/Module/VoiceScheduler.ts +0 -161
  142. /package/src/{Note → core/Note}/frequencyTable.ts +0 -0
  143. /package/src/{MidiDevice.ts → core/midi/MidiDevice.ts} +0 -0
  144. /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,3 +0,0 @@
1
- export { default, Envelope, EnvelopeStages } from "./Base";
2
- export { default as AmpEnvelope } from "./AmpEnvelope";
3
- export { default as FreqEnvelope, MonoFreqEnvelope } from "./FreqEnvelope";
@@ -1,4 +0,0 @@
1
- export { default, Envelope, EnvelopeStages } from "./Base";
2
- export { default as AmpEnvelope } from "./AmpEnvelope";
3
- export { default as FreqEnvelope, MonoFreqEnvelope } from "./FreqEnvelope";
4
- //# sourceMappingURL=index.js.map
@@ -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"}
@@ -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 {};
@@ -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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"}
@@ -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 {};
@@ -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
@@ -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"}
@@ -1,8 +0,0 @@
1
- import { Destination } from "tone";
2
- import Module from "./Base";
3
- export interface MasterInterface {
4
- }
5
- export default class Master extends Module<typeof Destination, MasterInterface> {
6
- static moduleName: string;
7
- constructor();
8
- }
@@ -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 {};