@blibliki/engine 0.1.17 → 0.1.19

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 (161) hide show
  1. package/README.md +13 -1
  2. package/{build → dist/build}/Engine.d.ts +14 -22
  3. package/dist/build/core/IO/AudioNode.d.ts +35 -0
  4. package/dist/build/core/IO/Collection.d.ts +13 -0
  5. package/dist/build/core/IO/ForwardNode.d.ts +38 -0
  6. package/dist/build/core/IO/MidiNode.d.ts +30 -0
  7. package/dist/build/core/IO/Node.d.ts +36 -0
  8. package/dist/build/core/IO/index.d.ts +12 -0
  9. package/dist/build/core/Module/MonoModule.d.ts +67 -0
  10. package/dist/build/core/Module/PolyModule.d.ts +57 -0
  11. package/dist/build/core/Module/index.d.ts +6 -0
  12. package/{build → dist/build/core}/Note/index.d.ts +3 -0
  13. package/{build → dist/build/core/midi}/MidiDevice.d.ts +1 -1
  14. package/dist/build/core/midi/MidiEvent.d.ts +21 -0
  15. package/dist/build/core/midi/index.d.ts +5 -0
  16. package/dist/build/index.d.ts +9 -0
  17. package/{build/Module → dist/build/modules}/BitCrusher.d.ts +5 -1
  18. package/{build/Module → dist/build/modules}/Delay.d.ts +5 -1
  19. package/{build/Module → dist/build/modules}/Distortion.d.ts +5 -1
  20. package/{build/Module → dist/build/modules}/Effect.d.ts +7 -2
  21. package/{build/Module → dist/build/modules}/Envelope/AmpEnvelope.d.ts +10 -2
  22. package/{build/Module → dist/build/modules}/Envelope/Base.d.ts +30 -11
  23. package/{build/Module → dist/build/modules}/Envelope/FreqEnvelope.d.ts +10 -3
  24. package/{build/Module → dist/build/modules}/Filter.d.ts +13 -13
  25. package/{build/Module → dist/build/modules}/Master.d.ts +5 -2
  26. package/{build/Module → dist/build/modules}/MidiSelector.d.ts +9 -5
  27. package/{build/Module → dist/build/modules}/Oscillator.d.ts +15 -9
  28. package/{build/Module → dist/build/modules}/Reverb.d.ts +5 -1
  29. package/{build/Module → dist/build/modules}/Sequencer.d.ts +9 -5
  30. package/{build/Module → dist/build/modules}/VirtualMidi.d.ts +12 -8
  31. package/dist/build/modules/VoiceScheduler.d.ts +43 -0
  32. package/dist/build/modules/Volume.d.ts +26 -0
  33. package/dist/build/modules/index.d.ts +16 -0
  34. package/{build → dist/build}/routes.d.ts +6 -5
  35. package/dist/build/types.d.ts +5 -0
  36. package/dist/build/utils.d.ts +1 -0
  37. package/dist/main.cjs.js +33 -0
  38. package/dist/main.cjs.js.map +1 -0
  39. package/dist/main.esm.js +33 -0
  40. package/dist/main.esm.js.map +1 -0
  41. package/package.json +26 -22
  42. package/src/Engine.ts +27 -36
  43. package/src/core/IO/AudioNode.ts +77 -0
  44. package/src/core/IO/Collection.ts +76 -0
  45. package/src/core/IO/ForwardNode.ts +192 -0
  46. package/src/core/IO/MidiNode.ts +67 -0
  47. package/src/core/IO/Node.ts +117 -0
  48. package/src/core/IO/index.ts +47 -0
  49. package/src/core/Module/MonoModule.ts +219 -0
  50. package/src/core/Module/PolyModule.ts +206 -0
  51. package/src/core/Module/index.ts +15 -0
  52. package/src/{Note → core/Note}/index.ts +19 -4
  53. package/src/{MidiDeviceManager.ts → core/midi/MidiDeviceManager.ts} +20 -15
  54. package/src/core/midi/MidiEvent.ts +91 -0
  55. package/src/core/midi/index.ts +5 -0
  56. package/src/index.ts +8 -12
  57. package/src/{Module → modules}/BitCrusher.ts +15 -4
  58. package/src/{Module → modules}/Delay.ts +15 -4
  59. package/src/{Module → modules}/Distortion.ts +15 -4
  60. package/src/{Module → modules}/Effect.ts +10 -6
  61. package/src/modules/Envelope/AmpEnvelope.ts +23 -0
  62. package/src/{Module → modules}/Envelope/Base.ts +50 -31
  63. package/src/{Module → modules}/Envelope/FreqEnvelope.ts +18 -23
  64. package/src/{Module → modules}/Filter.ts +18 -46
  65. package/src/{Module → modules}/Master.ts +8 -2
  66. package/src/{Module → modules}/MidiSelector.ts +18 -14
  67. package/src/{Module → modules}/Oscillator.ts +27 -16
  68. package/src/{Module → modules}/Reverb.ts +15 -4
  69. package/src/{Module → modules}/Sequencer.ts +17 -13
  70. package/src/{Module → modules}/VirtualMidi.ts +16 -12
  71. package/src/modules/VoiceScheduler.ts +145 -0
  72. package/src/{Module → modules}/Volume.ts +23 -15
  73. package/src/{Module → modules}/index.ts +14 -21
  74. package/src/routes.ts +19 -18
  75. package/src/types.ts +3 -0
  76. package/src/utils.ts +18 -0
  77. package/build/Engine.js +0 -165
  78. package/build/Engine.js.map +0 -1
  79. package/build/MidiDevice.js +0 -45
  80. package/build/MidiDevice.js.map +0 -1
  81. package/build/MidiDeviceManager.js +0 -59
  82. package/build/MidiDeviceManager.js.map +0 -1
  83. package/build/MidiEvent.d.ts +0 -18
  84. package/build/MidiEvent.js +0 -64
  85. package/build/MidiEvent.js.map +0 -1
  86. package/build/Module/Base.d.ts +0 -63
  87. package/build/Module/Base.js +0 -138
  88. package/build/Module/Base.js.map +0 -1
  89. package/build/Module/BitCrusher.js +0 -22
  90. package/build/Module/BitCrusher.js.map +0 -1
  91. package/build/Module/DataSequencer.d.ts +0 -26
  92. package/build/Module/DataSequencer.js +0 -91
  93. package/build/Module/DataSequencer.js.map +0 -1
  94. package/build/Module/Delay.js +0 -30
  95. package/build/Module/Delay.js.map +0 -1
  96. package/build/Module/Distortion.js +0 -22
  97. package/build/Module/Distortion.js.map +0 -1
  98. package/build/Module/Effect.js +0 -22
  99. package/build/Module/Effect.js.map +0 -1
  100. package/build/Module/Envelope/AmpEnvelope.js +0 -14
  101. package/build/Module/Envelope/AmpEnvelope.js.map +0 -1
  102. package/build/Module/Envelope/Base.js +0 -106
  103. package/build/Module/Envelope/Base.js.map +0 -1
  104. package/build/Module/Envelope/FreqEnvelope.js +0 -50
  105. package/build/Module/Envelope/FreqEnvelope.js.map +0 -1
  106. package/build/Module/Envelope/index.js +0 -4
  107. package/build/Module/Envelope/index.js.map +0 -1
  108. package/build/Module/Filter.js +0 -100
  109. package/build/Module/Filter.js.map +0 -1
  110. package/build/Module/IO.d.ts +0 -39
  111. package/build/Module/IO.js +0 -59
  112. package/build/Module/IO.js.map +0 -1
  113. package/build/Module/Master.js +0 -12
  114. package/build/Module/Master.js.map +0 -1
  115. package/build/Module/MidiSelector.js +0 -50
  116. package/build/Module/MidiSelector.js.map +0 -1
  117. package/build/Module/Oscillator.js +0 -136
  118. package/build/Module/Oscillator.js.map +0 -1
  119. package/build/Module/PolyModule.d.ts +0 -49
  120. package/build/Module/PolyModule.js +0 -175
  121. package/build/Module/PolyModule.js.map +0 -1
  122. package/build/Module/Reverb.js +0 -30
  123. package/build/Module/Reverb.js.map +0 -1
  124. package/build/Module/Sequencer.js +0 -131
  125. package/build/Module/Sequencer.js.map +0 -1
  126. package/build/Module/VirtualMidi.js +0 -53
  127. package/build/Module/VirtualMidi.js.map +0 -1
  128. package/build/Module/VoiceScheduler.d.ts +0 -38
  129. package/build/Module/VoiceScheduler.js +0 -130
  130. package/build/Module/VoiceScheduler.js.map +0 -1
  131. package/build/Module/Volume.d.ts +0 -20
  132. package/build/Module/Volume.js +0 -48
  133. package/build/Module/Volume.js.map +0 -1
  134. package/build/Module/index.d.ts +0 -14
  135. package/build/Module/index.js +0 -66
  136. package/build/Module/index.js.map +0 -1
  137. package/build/Note/frequencyTable.js +0 -146
  138. package/build/Note/frequencyTable.js.map +0 -1
  139. package/build/Note/index.js +0 -81
  140. package/build/Note/index.js.map +0 -1
  141. package/build/index.d.ts +0 -8
  142. package/build/index.js +0 -5
  143. package/build/index.js.map +0 -1
  144. package/build/routes.js +0 -31
  145. package/build/routes.js.map +0 -1
  146. package/jest.config.js +0 -19
  147. package/src/MidiEvent.ts +0 -93
  148. package/src/Module/Base.ts +0 -223
  149. package/src/Module/DataSequencer.ts +0 -121
  150. package/src/Module/Envelope/AmpEnvelope.ts +0 -17
  151. package/src/Module/IO.ts +0 -85
  152. package/src/Module/PolyModule.ts +0 -234
  153. package/src/Module/VoiceScheduler.ts +0 -161
  154. package/test/Module/Oscillator.test.ts +0 -9
  155. package/tsconfig.json +0 -22
  156. /package/{build → dist/build/core}/Note/frequencyTable.d.ts +0 -0
  157. /package/{build → dist/build/core/midi}/MidiDeviceManager.d.ts +0 -0
  158. /package/{build/Module → dist/build/modules}/Envelope/index.d.ts +0 -0
  159. /package/src/{Note → core/Note}/frequencyTable.ts +0 -0
  160. /package/src/{MidiDevice.ts → core/midi/MidiDevice.ts} +0 -0
  161. /package/src/{Module → modules}/Envelope/index.ts +0 -0
@@ -1,91 +0,0 @@
1
- import { Loop, now } from "tone";
2
- import Module, { DummnyInternalModule } from "./Base";
3
- import MidiEvent from "../MidiEvent";
4
- import { sortBy, uniq } from "lodash";
5
- import Engine from "../Engine";
6
- const InitialProps = () => ({
7
- sequences: [],
8
- });
9
- export default class DataSequencer extends Module {
10
- static moduleName = "DataSequencer";
11
- midiOutput;
12
- prevNumberOfVoices;
13
- loop;
14
- constructor(name, props) {
15
- super(new DummnyInternalModule(), {
16
- name,
17
- props: { ...InitialProps(), ...props },
18
- });
19
- this.start(now());
20
- this.registerOutputs();
21
- }
22
- get sequences() {
23
- return this._props["sequences"];
24
- }
25
- set sequences(value) {
26
- const sequences = sortBy(value, (seq) => -seq.time);
27
- this._props = { ...this.props, sequences };
28
- this.updateNumberOfVoices();
29
- this.start(now());
30
- }
31
- start(time) {
32
- if (!Engine.isStarted)
33
- return;
34
- Engine.updateRoutes();
35
- const loopLength = 0.1;
36
- const tempSequences = [...this.sequences];
37
- const iterate = (maxTime) => {
38
- const sequence = tempSequences.pop();
39
- if (!sequence)
40
- return;
41
- const seqTime = time + sequence.time;
42
- this.onPartEvent(seqTime, sequence);
43
- if (seqTime > maxTime)
44
- return;
45
- iterate(maxTime);
46
- };
47
- this.loop = new Loop((t) => {
48
- iterate(time + t + loopLength);
49
- }, loopLength).start(time);
50
- }
51
- stop() {
52
- if (!this.loop)
53
- return;
54
- this.loop.stop();
55
- this.loop.dispose();
56
- }
57
- onPartEvent = (time, sequence) => {
58
- const { voiceNo } = sequence;
59
- const event = MidiEvent.fromDataSequence(sequence, time);
60
- this.midiOutput.connections.forEach((input) => {
61
- input.pluggable(event, voiceNo);
62
- });
63
- };
64
- get numberOfVoices() {
65
- return uniq(this.sequences.map((sequence) => sequence.voiceNo)).length;
66
- }
67
- updateNumberOfVoices() {
68
- if (!this.midiOutput)
69
- return;
70
- this.midiOutput.connections.forEach((input) => {
71
- if (input.audioModule instanceof Module)
72
- return;
73
- input.audioModule.numberOfVoices = this.numberOfVoices;
74
- });
75
- if (this.prevNumberOfVoices !== this.numberOfVoices) {
76
- Engine.updateRoutes();
77
- }
78
- this.prevNumberOfVoices = this.numberOfVoices;
79
- }
80
- registerOutputs() {
81
- this.midiOutput = this.registerOutput({
82
- name: "midi out",
83
- onPlug: (input) => {
84
- if (input.audioModule instanceof Module)
85
- return;
86
- input.audioModule.numberOfVoices = this.numberOfVoices;
87
- },
88
- });
89
- }
90
- }
91
- //# sourceMappingURL=DataSequencer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataSequencer.js","sourceRoot":"","sources":["../../src/Module/DataSequencer.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { FeedbackDelay } from "tone";
2
- import Effect from "./Effect";
3
- const InitialProps = {
4
- delayTime: 1,
5
- feedback: 0.3,
6
- };
7
- export default class Delay extends Effect {
8
- static moduleName = "Delay";
9
- constructor(name, props) {
10
- super(name, new FeedbackDelay(), {
11
- ...InitialProps,
12
- ...props,
13
- });
14
- }
15
- get delayTime() {
16
- return this._props["delayTime"];
17
- }
18
- set delayTime(value) {
19
- this._props = { ...this.props, delayTime: value };
20
- this.internalModule.delayTime.value = this.delayTime;
21
- }
22
- get feedback() {
23
- return this._props["feedback"];
24
- }
25
- set feedback(value) {
26
- this._props = { ...this.props, feedback: value };
27
- this.internalModule.feedback.value = this.feedback;
28
- }
29
- }
30
- //# sourceMappingURL=Delay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Delay.js","sourceRoot":"","sources":["../../src/Module/Delay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,MAA2B,MAAM,UAAU,CAAC;AAOnD,MAAM,YAAY,GAA4B;IAC5C,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,MAAqC;IACtE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;IAE5B,YAAY,IAAY,EAAE,KAA8B;QACtD,KAAK,CAAC,IAAI,EAAE,IAAI,aAAa,EAAE,EAAE;YAC/B,GAAG,YAAY;YACf,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IACvD,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,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrD,CAAC"}
@@ -1,22 +0,0 @@
1
- import { Distortion as InternalDistortion } from "tone";
2
- import Effect from "./Effect";
3
- const InitialProps = {
4
- drive: 0.3,
5
- };
6
- export default class Distortion extends Effect {
7
- static moduleName = "Distortion";
8
- constructor(name, props) {
9
- super(name, new InternalDistortion(), {
10
- ...InitialProps,
11
- ...props,
12
- });
13
- }
14
- get drive() {
15
- return this._props["drive"];
16
- }
17
- set drive(value) {
18
- this._props = { ...this.props, drive: value };
19
- this.internalModule.distortion = this.drive;
20
- }
21
- }
22
- //# sourceMappingURL=Distortion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Distortion.js","sourceRoot":"","sources":["../../src/Module/Distortion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,MAA2B,MAAM,UAAU,CAAC;AAMnD,MAAM,YAAY,GAAiC;IACjD,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAGvC;IACC,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC;IAEjC,YAAY,IAAY,EAAE,KAAmC;QAC3D,KAAK,CAAC,IAAI,EAAE,IAAI,kBAAkB,EAAE,EAAE;YACpC,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,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9C,CAAC"}
@@ -1,22 +0,0 @@
1
- import Module from "./Base";
2
- const InitialProps = {
3
- wet: 1,
4
- };
5
- export default class Effect extends Module {
6
- constructor(name, internalModule, props) {
7
- super(internalModule, {
8
- name,
9
- props: { ...InitialProps, ...props },
10
- });
11
- this.registerBasicInputs();
12
- this.registerBasicOutputs();
13
- }
14
- get wet() {
15
- return this._props["wet"];
16
- }
17
- set wet(value) {
18
- this._props = { ...this.props, wet: value };
19
- this.internalModule.wet.value = this.wet;
20
- }
21
- }
22
- //# sourceMappingURL=Effect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/Module/Effect.ts"],"names":[],"mappings":"AACA,OAAO,MAAuB,MAAM,QAAQ,CAAC;AAU7C,MAAM,YAAY,GAAoB;IACpC,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,CAAC,OAAO,OAAgB,MAG5B,SAAQ,MAAuC;IAC/C,YACE,IAAY,EACZ,cAA8B,EAC9B,KAA+B;QAE/B,KAAK,CAAC,cAAc,EAAE;YACpB,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAqB;SACxD,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,CAAC;CACF"}
@@ -1,14 +0,0 @@
1
- import { AmplitudeEnvelope } from "tone";
2
- import Base, { PolyBase } from "./Base";
3
- class MonoAmpEnvelope extends Base {
4
- constructor(name, props) {
5
- super(name, new AmplitudeEnvelope(), props);
6
- }
7
- }
8
- export default class AmpEnvelope extends PolyBase {
9
- static moduleName = "AmpEnvelope";
10
- constructor(name, props) {
11
- super(name, MonoAmpEnvelope, props);
12
- }
13
- }
14
- //# sourceMappingURL=AmpEnvelope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AmpEnvelope.js","sourceRoot":"","sources":["../../../src/Module/Envelope/AmpEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,IAAI,EAAE,EAAqB,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE3D,MAAM,eAAgB,SAAQ,IAAuB;IACnD,YAAY,IAAY,EAAE,KAAwB;QAChD,KAAK,CAAC,IAAI,EAAE,IAAI,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,QAAyB;IAChE,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAElC,YAAY,IAAY,EAAE,KAAiC;QACzD,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC"}
@@ -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":"AAAA,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,MAA8C,MAAM,SAAS,CAAC;AACrE,OAAO,UAAU,MAAM,eAAe,CAAC;AAIvC,MAAM,CAAN,IAAkB,cAKjB;AALD,WAAkB,cAAc;IAC9B,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EALiB,cAAc,KAAd,cAAc,QAK/B;AAED,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAU5B,MAAM,YAAY,GAAsB;IACtC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAgB,cAC5B,SAAQ,MAAuC;IAG/C,UAAU,CAAU;IACpB,WAAW,CAAS;IAEpB,YACE,IAAY,EACZ,cAA4B,EAC5B,KAAwB;QAExB,KAAK,CAAC,cAAc,EAAE;YACpB,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,KAAqB,EAAE,KAAa;QAC3C,MAAM,eAAe,GACnB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;IAC/C,CAAC;IAED,aAAa,GAAG,CAAC,IAAU,EAAE,WAAmB,EAAE,EAAE;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,cAAc,GAAG,CAAC,IAAU,EAAE,WAAmB,EAAE,EAAE;QACnD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,CAAC;IAEM,OAAO,CAAC,KAAqB;QACnC,OAAO,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzE,CAAC;IAEO,OAAO,CAAC,KAAqB;QACnC,OAAO,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzE,CAAC;CACF;AAED,MAAM,OAAgB,QAEpB,SAAQ,UAA6C;IACrD,YACE,IAAY,EACZ,KAAqE,EACrE,KAAiC;QAEjC,KAAK,CAAC;YACJ,IAAI;YACJ,KAAK;YACL,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,aAAa,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI,CAAC,aAAa;SAC9B,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,YAAa,SAAQ,cAAmB;IAC5C,YAAY,IAAY,EAAE,KAAwB;QAChD,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,QAAsB;IAClD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAE/B,YAAY,IAAY,EAAE,KAAiC;QACzD,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE;YACxB,GAAG,YAAY;YACf,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC"}
@@ -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,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,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,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,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