@opendaw/studio-adapters 0.0.48 → 0.0.50

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 (171) hide show
  1. package/dist/AutomatableParameterFieldAdapter.js +86 -73
  2. package/dist/BoxAdapterCollection.js +30 -17
  3. package/dist/BoxAdapters.d.ts.map +1 -1
  4. package/dist/BoxAdapters.js +87 -72
  5. package/dist/BoxAdaptersContext.d.ts +2 -2
  6. package/dist/BoxAdaptersContext.d.ts.map +1 -1
  7. package/dist/EngineProcessorAttachment.d.ts +2 -1
  8. package/dist/EngineProcessorAttachment.d.ts.map +1 -1
  9. package/dist/FieldAdapter.js +45 -32
  10. package/dist/IndexedBoxAdapterCollection.js +45 -32
  11. package/dist/NoteBroadcaster.js +25 -12
  12. package/dist/NoteStreamReceiver.js +29 -16
  13. package/dist/ParameterAdapterSet.js +24 -11
  14. package/dist/ParameterFieldAdapters.js +19 -6
  15. package/dist/Parsing.d.ts +5 -0
  16. package/dist/Parsing.d.ts.map +1 -0
  17. package/dist/Parsing.js +10 -0
  18. package/dist/PianoModeAdapter.js +32 -19
  19. package/dist/RootBoxAdapter.js +37 -24
  20. package/dist/Validator.d.ts +10 -0
  21. package/dist/Validator.d.ts.map +1 -0
  22. package/dist/Validator.js +35 -0
  23. package/dist/audio/AudioFileBoxAdapter.js +23 -10
  24. package/dist/audio-unit/AudioBusBoxAdapter.d.ts +1 -1
  25. package/dist/audio-unit/AudioBusBoxAdapter.d.ts.map +1 -1
  26. package/dist/audio-unit/AudioBusBoxAdapter.js +31 -18
  27. package/dist/audio-unit/AudioUnitBoxAdapter.js +74 -63
  28. package/dist/audio-unit/AudioUnitInput.d.ts +1 -1
  29. package/dist/audio-unit/AudioUnitInput.d.ts.map +1 -1
  30. package/dist/audio-unit/AudioUnitInput.js +43 -30
  31. package/dist/audio-unit/AudioUnitOutput.js +33 -20
  32. package/dist/audio-unit/AudioUnitTracks.js +39 -26
  33. package/dist/audio-unit/AuxSendBoxAdapter.js +47 -34
  34. package/dist/devices/audio-effects/CompressorDeviceBoxAdapter.js +49 -37
  35. package/dist/devices/audio-effects/CrusherDeviceBoxAdapter.js +41 -29
  36. package/dist/devices/audio-effects/DelayDeviceBoxAdapter.js +51 -39
  37. package/dist/devices/audio-effects/FoldDeviceBoxAdapter.js +39 -27
  38. package/dist/devices/audio-effects/ModularDeviceBoxAdapter.js +33 -20
  39. package/dist/devices/audio-effects/RevampDeviceBoxAdapter.js +46 -34
  40. package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.js +45 -33
  41. package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.js +43 -31
  42. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts +36 -0
  43. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts.map +1 -0
  44. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.js +63 -0
  45. package/dist/devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter.js +30 -17
  46. package/dist/devices/instruments/MIDIOutputDeviceBoxAdapter.js +42 -29
  47. package/dist/devices/instruments/NanoDeviceBoxAdapter.js +38 -26
  48. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +101 -89
  49. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts +0 -1
  50. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts.map +1 -1
  51. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.js +36 -24
  52. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.js +84 -72
  53. package/dist/devices/instruments/TapeDeviceBoxAdapter.js +40 -28
  54. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts +26 -4
  55. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts.map +1 -1
  56. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.js +70 -33
  57. package/dist/devices/instruments/VaporisateurSettings.d.ts +17 -0
  58. package/dist/devices/instruments/VaporisateurSettings.d.ts.map +1 -0
  59. package/dist/devices/instruments/VaporisateurSettings.js +24 -0
  60. package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.js +51 -39
  61. package/dist/devices/midi-effects/PitchDeviceBoxAdapter.js +40 -28
  62. package/dist/devices/midi-effects/UnknownMidiEffectDeviceBoxAdapter.js +30 -17
  63. package/dist/devices/midi-effects/VelocityDeviceBoxAdapter.js +47 -35
  64. package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.js +32 -19
  65. package/dist/editing/UserEditing.js +33 -20
  66. package/dist/editing/UserEditingManager.js +28 -15
  67. package/dist/factories/AudioBusFactory.d.ts +7 -0
  68. package/dist/factories/AudioBusFactory.d.ts.map +1 -0
  69. package/dist/factories/AudioBusFactory.js +29 -0
  70. package/dist/factories/AudioUnitFactory.d.ts +13 -0
  71. package/dist/factories/AudioUnitFactory.d.ts.map +1 -0
  72. package/dist/factories/AudioUnitFactory.js +44 -0
  73. package/dist/factories/AudioUnitOrdering.d.ts +3 -0
  74. package/dist/factories/AudioUnitOrdering.d.ts.map +1 -0
  75. package/dist/factories/AudioUnitOrdering.js +7 -0
  76. package/dist/factories/ColorCodes.d.ts +7 -0
  77. package/dist/factories/ColorCodes.d.ts.map +1 -0
  78. package/dist/factories/ColorCodes.js +32 -0
  79. package/dist/factories/Colors.d.ts +15 -0
  80. package/dist/factories/Colors.d.ts.map +1 -0
  81. package/dist/factories/Colors.js +23 -0
  82. package/dist/factories/InstrumentBox.d.ts +3 -0
  83. package/dist/factories/InstrumentBox.d.ts.map +1 -0
  84. package/dist/factories/InstrumentBox.js +1 -0
  85. package/dist/factories/InstrumentFactories.d.ts +34 -0
  86. package/dist/factories/InstrumentFactories.d.ts.map +1 -0
  87. package/dist/factories/InstrumentFactories.js +137 -0
  88. package/dist/factories/InstrumentFactory.d.ts +13 -0
  89. package/dist/factories/InstrumentFactory.d.ts.map +1 -0
  90. package/dist/factories/InstrumentFactory.js +1 -0
  91. package/dist/factories/InstrumentOptions.d.ts +9 -0
  92. package/dist/factories/InstrumentOptions.d.ts.map +1 -0
  93. package/dist/factories/InstrumentOptions.js +1 -0
  94. package/dist/factories/InstrumentProduct.d.ts +8 -0
  95. package/dist/factories/InstrumentProduct.d.ts.map +1 -0
  96. package/dist/factories/InstrumentProduct.js +1 -0
  97. package/dist/grooves/GrooveShuffleBoxAdapter.js +47 -35
  98. package/dist/index.d.ts +20 -3
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +20 -3
  101. package/dist/modular/abstract.js +37 -24
  102. package/dist/modular/connection.js +20 -7
  103. package/dist/modular/connector.js +29 -16
  104. package/dist/modular/modular.js +49 -36
  105. package/dist/modular/modules/audio-input.js +17 -4
  106. package/dist/modular/modules/audio-output.js +17 -4
  107. package/dist/modular/modules/delay.js +24 -11
  108. package/dist/modular/modules/gain.js +24 -11
  109. package/dist/modular/modules/multiplier.js +21 -8
  110. package/dist/modular/user-interface.js +25 -12
  111. package/dist/preset/PresetDecoder.d.ts +11 -0
  112. package/dist/preset/PresetDecoder.d.ts.map +1 -0
  113. package/dist/preset/PresetDecoder.js +154 -0
  114. package/dist/preset/PresetEncoder.d.ts +5 -0
  115. package/dist/preset/PresetEncoder.d.ts.map +1 -0
  116. package/dist/preset/PresetEncoder.js +19 -0
  117. package/dist/preset/PresetHeader.d.ts +5 -0
  118. package/dist/preset/PresetHeader.d.ts.map +1 -0
  119. package/dist/preset/PresetHeader.js +5 -0
  120. package/dist/project/ProjectQueries.d.ts +5 -0
  121. package/dist/project/ProjectQueries.d.ts.map +1 -0
  122. package/dist/project/ProjectQueries.js +10 -0
  123. package/dist/project/ProjectSkeleton.d.ts +10 -1
  124. package/dist/project/ProjectSkeleton.d.ts.map +1 -1
  125. package/dist/project/ProjectSkeleton.js +100 -1
  126. package/dist/project/ProjectUtils.d.ts +13 -0
  127. package/dist/project/ProjectUtils.d.ts.map +1 -0
  128. package/dist/project/ProjectUtils.js +142 -0
  129. package/dist/protocols.d.ts.map +1 -1
  130. package/dist/selection/FilteredSelection.js +47 -34
  131. package/dist/selection/VertexSelection.js +66 -55
  132. package/dist/soundfont/SoundfontFileBoxAdapter.js +21 -8
  133. package/dist/timeline/MarkerBoxAdapter.js +33 -20
  134. package/dist/timeline/MarkerTrackAdapter.js +34 -22
  135. package/dist/timeline/TimelineBoxAdapter.js +24 -11
  136. package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
  137. package/dist/timeline/TrackBoxAdapter.js +97 -85
  138. package/dist/timeline/TrackClips.js +27 -14
  139. package/dist/timeline/TrackRegions.js +40 -27
  140. package/dist/timeline/TrackType.d.ts +1 -1
  141. package/dist/timeline/TrackType.d.ts.map +1 -1
  142. package/dist/timeline/TrackType.js +1 -1
  143. package/dist/timeline/clip/AudioClipBoxAdapter.js +66 -53
  144. package/dist/timeline/clip/NoteClipBoxAdapter.js +66 -53
  145. package/dist/timeline/clip/ValueClipBoxAdapter.js +67 -54
  146. package/dist/timeline/collection/NoteEventCollectionBoxAdapter.js +85 -73
  147. package/dist/timeline/collection/ValueEventCollectionBoxAdapter.js +53 -40
  148. package/dist/timeline/event/NoteEventBoxAdapter.js +43 -30
  149. package/dist/timeline/event/ValueEventBoxAdapter.js +67 -54
  150. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +17 -9
  151. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
  152. package/dist/timeline/region/AudioRegionBoxAdapter.js +149 -83
  153. package/dist/timeline/region/MutableRegion.d.ts +8 -0
  154. package/dist/timeline/region/MutableRegion.d.ts.map +1 -0
  155. package/dist/timeline/region/MutableRegion.js +1 -0
  156. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts +6 -1
  157. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts.map +1 -1
  158. package/dist/timeline/region/NoteRegionBoxAdapter.js +78 -61
  159. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts +6 -1
  160. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts.map +1 -1
  161. package/dist/timeline/region/ValueRegionBoxAdapter.js +79 -62
  162. package/package.json +8 -8
  163. package/dist/IconSymbol.d.ts +0 -126
  164. package/dist/IconSymbol.d.ts.map +0 -1
  165. package/dist/IconSymbol.js +0 -126
  166. package/dist/UpdateClockRate.d.ts +0 -2
  167. package/dist/UpdateClockRate.d.ts.map +0 -1
  168. package/dist/UpdateClockRate.js +0 -2
  169. package/dist/project/ProjectDecoder.d.ts +0 -10
  170. package/dist/project/ProjectDecoder.d.ts.map +0 -1
  171. package/dist/project/ProjectDecoder.js +0 -36
@@ -1,39 +1,51 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _NanoDeviceBoxAdapter_instances, _NanoDeviceBoxAdapter_context, _NanoDeviceBoxAdapter_box, _NanoDeviceBoxAdapter_parametric, _NanoDeviceBoxAdapter_wrapParameters;
1
13
  import { StringMapping, ValueMapping } from "@opendaw/lib-std";
2
14
  import { Devices } from "../../DeviceAdapter";
3
15
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
4
16
  import { TrackType } from "../../timeline/TrackType";
5
17
  export class NanoDeviceBoxAdapter {
6
- type = "instrument";
7
- accepts = "midi";
8
- #context;
9
- #box;
10
- #parametric;
11
- namedParameter; // let typescript infer the type
12
18
  constructor(context, box) {
13
- this.#context = context;
14
- this.#box = box;
15
- this.#parametric = new ParameterAdapterSet(this.#context);
16
- this.namedParameter = this.#wrapParameters(box);
19
+ _NanoDeviceBoxAdapter_instances.add(this);
20
+ this.type = "instrument";
21
+ this.accepts = "midi";
22
+ _NanoDeviceBoxAdapter_context.set(this, void 0);
23
+ _NanoDeviceBoxAdapter_box.set(this, void 0);
24
+ _NanoDeviceBoxAdapter_parametric.set(this, void 0);
25
+ __classPrivateFieldSet(this, _NanoDeviceBoxAdapter_context, context, "f");
26
+ __classPrivateFieldSet(this, _NanoDeviceBoxAdapter_box, box, "f");
27
+ __classPrivateFieldSet(this, _NanoDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _NanoDeviceBoxAdapter_context, "f")), "f");
28
+ this.namedParameter = __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_instances, "m", _NanoDeviceBoxAdapter_wrapParameters).call(this, box);
17
29
  }
18
- get box() { return this.#box; }
19
- get uuid() { return this.#box.address.uuid; }
20
- get address() { return this.#box.address; }
21
- get labelField() { return this.#box.label; }
22
- get iconField() { return this.#box.icon; }
30
+ get box() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f"); }
31
+ get uuid() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").address.uuid; }
32
+ get address() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").address; }
33
+ get labelField() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").label; }
34
+ get iconField() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").icon; }
23
35
  get defaultTrackType() { return TrackType.Notes; }
24
- get enabledField() { return this.#box.enabled; }
25
- get minimizedField() { return this.#box.minimized; }
36
+ get enabledField() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").enabled; }
37
+ get minimizedField() { return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").minimized; }
26
38
  get acceptsMidiEvents() { return true; }
27
39
  deviceHost() {
28
- return this.#context.boxAdapters
29
- .adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
40
+ return __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_context, "f").boxAdapters
41
+ .adapterFor(__classPrivateFieldGet(this, _NanoDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
30
42
  }
31
43
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
32
- terminate() { this.#parametric.terminate(); }
33
- #wrapParameters(box) {
34
- return {
35
- volume: this.#parametric.createParameter(box.volume, ValueMapping.DefaultDecibel, StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "volume"),
36
- release: this.#parametric.createParameter(box.release, ValueMapping.exponential(0.001, 8.0), StringMapping.numeric({ unit: "s", fractionDigits: 3 }), "release")
37
- };
38
- }
44
+ terminate() { __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_parametric, "f").terminate(); }
39
45
  }
46
+ _NanoDeviceBoxAdapter_context = new WeakMap(), _NanoDeviceBoxAdapter_box = new WeakMap(), _NanoDeviceBoxAdapter_parametric = new WeakMap(), _NanoDeviceBoxAdapter_instances = new WeakSet(), _NanoDeviceBoxAdapter_wrapParameters = function _NanoDeviceBoxAdapter_wrapParameters(box) {
47
+ return {
48
+ volume: __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_parametric, "f").createParameter(box.volume, ValueMapping.DefaultDecibel, StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "volume"),
49
+ release: __classPrivateFieldGet(this, _NanoDeviceBoxAdapter_parametric, "f").createParameter(box.release, ValueMapping.exponential(0.001, 8.0), StringMapping.numeric({ unit: "s", fractionDigits: 3 }), "release")
50
+ };
51
+ };
@@ -1,3 +1,15 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _PlayfieldSampleBoxAdapter_instances, _PlayfieldSampleBoxAdapter_terminator, _PlayfieldSampleBoxAdapter_context, _PlayfieldSampleBoxAdapter_box, _PlayfieldSampleBoxAdapter_midiEffects, _PlayfieldSampleBoxAdapter_audioEffects, _PlayfieldSampleBoxAdapter_parametric, _PlayfieldSampleBoxAdapter_file, _PlayfieldSampleBoxAdapter_wrapParameters;
1
13
  import { Pointers } from "@opendaw/studio-enums";
2
14
  import { PlayfieldSampleBox } from "@opendaw/studio-boxes";
3
15
  import { Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
@@ -8,121 +20,121 @@ import { AudioFileBoxAdapter } from "../../../audio/AudioFileBoxAdapter";
8
20
  import { TrackType } from "../../../timeline/TrackType";
9
21
  import { PlayfieldDeviceBoxAdapter } from "../PlayfieldDeviceBoxAdapter";
10
22
  export class PlayfieldSampleBoxAdapter {
11
- class = "device-host";
12
- accepts = false;
13
- type = "instrument";
14
- #terminator = new Terminator();
15
- #context;
16
- #box;
17
- #midiEffects;
18
- #audioEffects;
19
- #parametric;
20
- namedParameter; // let typescript infer the type
21
- #file = Option.None;
22
23
  constructor(context, box) {
23
- this.#context = context;
24
- this.#box = box;
25
- this.#midiEffects = this.#terminator.own(IndexedBoxAdapterCollection.create(this.#box.midiEffects, box => this.#context.boxAdapters.adapterFor(box, Devices.isMidiEffect), Pointers.MidiEffectHost));
26
- this.#audioEffects = this.#terminator.own(IndexedBoxAdapterCollection.create(this.#box.audioEffects, box => this.#context.boxAdapters.adapterFor(box, Devices.isAudioEffect), Pointers.AudioEffectHost));
27
- this.#parametric = this.#terminator.own(new ParameterAdapterSet(this.#context));
28
- this.namedParameter = this.#wrapParameters(box);
29
- this.#terminator.own(this.#box.file.catchupAndSubscribe(pointer => {
30
- this.#file = pointer.targetVertex.map(({ box }) => this.#context.boxAdapters.adapterFor(box, AudioFileBoxAdapter));
31
- this.#file.unwrapOrNull()?.getOrCreateLoader(); // triggers preloading file if available
24
+ _PlayfieldSampleBoxAdapter_instances.add(this);
25
+ this.class = "device-host";
26
+ this.accepts = false;
27
+ this.type = "instrument";
28
+ _PlayfieldSampleBoxAdapter_terminator.set(this, new Terminator());
29
+ _PlayfieldSampleBoxAdapter_context.set(this, void 0);
30
+ _PlayfieldSampleBoxAdapter_box.set(this, void 0);
31
+ _PlayfieldSampleBoxAdapter_midiEffects.set(this, void 0);
32
+ _PlayfieldSampleBoxAdapter_audioEffects.set(this, void 0);
33
+ _PlayfieldSampleBoxAdapter_parametric.set(this, void 0);
34
+ _PlayfieldSampleBoxAdapter_file.set(this, Option.None);
35
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_context, context, "f");
36
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_box, box, "f");
37
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_midiEffects, __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").midiEffects, box => __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f").boxAdapters.adapterFor(box, Devices.isMidiEffect), Pointers.MidiEffectHost)), "f");
38
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_audioEffects, __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").audioEffects, box => __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f").boxAdapters.adapterFor(box, Devices.isAudioEffect), Pointers.AudioEffectHost)), "f");
39
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_parametric, __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_terminator, "f").own(new ParameterAdapterSet(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f"))), "f");
40
+ this.namedParameter = __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_instances, "m", _PlayfieldSampleBoxAdapter_wrapParameters).call(this, box);
41
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_terminator, "f").own(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.catchupAndSubscribe(pointer => {
42
+ __classPrivateFieldSet(this, _PlayfieldSampleBoxAdapter_file, pointer.targetVertex.map(({ box }) => __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f").boxAdapters.adapterFor(box, AudioFileBoxAdapter)), "f");
43
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_file, "f").unwrapOrNull()?.getOrCreateLoader(); // triggers preloading file if available
32
44
  }));
33
45
  }
34
- get box() { return this.#box; }
35
- get uuid() { return this.#box.address.uuid; }
36
- get address() { return this.#box.address; }
37
- get peakAddress() { return this.#box.address.append(1001); }
38
- get indexField() { return this.#box.index; }
39
- get gate() { return this.#box.gate.getValue(); }
40
- get exclude() { return this.#box.exclude.getValue(); }
46
+ get box() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f"); }
47
+ get uuid() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").address.uuid; }
48
+ get address() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").address; }
49
+ get peakAddress() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").address.append(1001); }
50
+ get indexField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").index; }
51
+ get gate() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").gate.getValue(); }
52
+ get exclude() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").exclude.getValue(); }
41
53
  get label() {
42
- return `${this.device().labelField.getValue()} > ${this.#file.mapOr(file => file.box.fileName.getValue(), "No file")}`;
54
+ return `${this.device().labelField.getValue()} > ${__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_file, "f").mapOr(file => file.box.fileName.getValue(), "No file")}`;
43
55
  }
44
- get iconField() { return this.#box.icon; }
56
+ get iconField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").icon; }
45
57
  get defaultTrackType() { return TrackType.Notes; }
46
58
  get acceptsMidiEvents() { return true; }
47
- get midiEffectsField() { return this.#box.midiEffects; }
59
+ get midiEffectsField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").midiEffects; }
48
60
  get inputField() { return this.audioUnitBoxAdapter().box.input; }
49
- get audioEffectsField() { return this.#box.audioEffects; }
61
+ get audioEffectsField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").audioEffects; }
50
62
  get tracksField() { return this.audioUnitBoxAdapter().box.tracks; }
51
63
  get isAudioUnit() { return false; }
52
- file() { return this.#file; }
53
- fileUUID() { return this.#box.file.targetAddress.unwrap().uuid; }
64
+ file() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_file, "f"); }
65
+ fileUUID() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetAddress.unwrap().uuid; }
54
66
  resetParameters() {
55
- this.#box.mute.reset();
56
- this.#box.solo.reset();
57
- this.#box.exclude.reset();
58
- this.#box.polyphone.reset();
59
- this.#box.pitch.reset();
60
- this.#box.attack.reset();
61
- this.#box.release.reset();
62
- this.#box.sampleStart.reset();
63
- this.#box.sampleEnd.reset();
64
- this.#box.gate.reset();
67
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").mute.reset();
68
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").solo.reset();
69
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").exclude.reset();
70
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").polyphone.reset();
71
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").pitch.reset();
72
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").attack.reset();
73
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").release.reset();
74
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").sampleStart.reset();
75
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").sampleEnd.reset();
76
+ __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").gate.reset();
65
77
  }
66
78
  copyToIndex(index) {
67
- PlayfieldSampleBox.create(this.#box.graph, UUID.generate(), box => {
68
- box.file.refer(this.#box.file.targetVertex.unwrap());
69
- box.device.refer(this.#box.device.targetVertex.unwrap());
79
+ PlayfieldSampleBox.create(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").graph, UUID.generate(), box => {
80
+ box.file.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap());
81
+ box.device.refer(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap());
70
82
  box.index.setValue(index);
71
- box.mute.setValue(this.#box.mute.getValue());
72
- box.solo.setValue(this.#box.solo.getValue());
73
- box.sampleStart.setValue(this.#box.sampleStart.getValue());
74
- box.sampleEnd.setValue(this.#box.sampleEnd.getValue());
75
- box.attack.setValue(this.#box.attack.getValue());
76
- box.release.setValue(this.#box.release.getValue());
77
- box.pitch.setValue(this.#box.pitch.getValue());
78
- box.exclude.setValue(this.#box.exclude.getValue());
79
- box.gate.setValue(this.#box.gate.getValue());
83
+ box.mute.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").mute.getValue());
84
+ box.solo.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").solo.getValue());
85
+ box.sampleStart.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").sampleStart.getValue());
86
+ box.sampleEnd.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").sampleEnd.getValue());
87
+ box.attack.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").attack.getValue());
88
+ box.release.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").release.getValue());
89
+ box.pitch.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").pitch.getValue());
90
+ box.exclude.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").exclude.getValue());
91
+ box.gate.setValue(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").gate.getValue());
80
92
  // TODO Copy effects?
81
93
  });
82
94
  }
83
95
  get midiEffects() {
84
- return this.#midiEffects;
96
+ return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_midiEffects, "f");
85
97
  }
86
98
  get inputAdapter() {
87
99
  return Option.wrap(this);
88
100
  }
89
101
  get audioEffects() {
90
- return this.#audioEffects;
102
+ return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_audioEffects, "f");
91
103
  }
92
- get labelField() { return this.#box.label; }
93
- get enabledField() { return this.#box.enabled; }
94
- get minimizedField() { return this.#box.minimized; }
104
+ get labelField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").label; }
105
+ get enabledField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").enabled; }
106
+ get minimizedField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").minimized; }
95
107
  device() {
96
- return this.#context.boxAdapters
97
- .adapterFor(this.#box.device.targetVertex.unwrap().box, PlayfieldDeviceBoxAdapter);
108
+ return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_context, "f").boxAdapters
109
+ .adapterFor(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").device.targetVertex.unwrap().box, PlayfieldDeviceBoxAdapter);
98
110
  }
99
111
  deviceHost() { return this.device().deviceHost(); }
100
112
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
101
- terminate() { this.#terminator.terminate(); }
102
- #wrapParameters(box) {
103
- return {
104
- gate: this.#parametric.createParameter(box.gate, ValueMapping.linearInteger(0, 2), StringMapping.indices("", ["Off", "On", "Loop"]), "Gate"),
105
- mute: this.#parametric.createParameter(box.mute, ValueMapping.bool, StringMapping.bool, "Mute"),
106
- solo: this.#parametric.createParameter(box.solo, ValueMapping.bool, StringMapping.bool, "Solo"),
107
- polyphone: this.#parametric.createParameter(box.polyphone, ValueMapping.bool, StringMapping.bool, "Polyphone"),
108
- exclude: this.#parametric.createParameter(box.exclude, ValueMapping.bool, StringMapping.bool, "Exclude"),
109
- pitch: this.#parametric.createParameter(box.pitch, ValueMapping.linear(-1200, 1200), StringMapping.numeric({
110
- unit: "cents",
111
- bipolar: true,
112
- fractionDigits: 0
113
- }), "Pitch", 0.0),
114
- sampleStart: this.#parametric.createParameter(box.sampleStart, ValueMapping.unipolar(), StringMapping.percent(), "Start", 0.0),
115
- sampleEnd: this.#parametric.createParameter(box.sampleEnd, ValueMapping.unipolar(), StringMapping.percent(), "End", 1.0),
116
- attack: this.#parametric.createParameter(box.attack, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
117
- unit: "s",
118
- unitPrefix: true,
119
- fractionDigits: 1
120
- }), "Attack"),
121
- release: this.#parametric.createParameter(box.release, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
122
- unit: "s",
123
- unitPrefix: true,
124
- fractionDigits: 1
125
- }), "Release")
126
- };
127
- }
113
+ terminate() { __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_terminator, "f").terminate(); }
128
114
  }
115
+ _PlayfieldSampleBoxAdapter_terminator = new WeakMap(), _PlayfieldSampleBoxAdapter_context = new WeakMap(), _PlayfieldSampleBoxAdapter_box = new WeakMap(), _PlayfieldSampleBoxAdapter_midiEffects = new WeakMap(), _PlayfieldSampleBoxAdapter_audioEffects = new WeakMap(), _PlayfieldSampleBoxAdapter_parametric = new WeakMap(), _PlayfieldSampleBoxAdapter_file = new WeakMap(), _PlayfieldSampleBoxAdapter_instances = new WeakSet(), _PlayfieldSampleBoxAdapter_wrapParameters = function _PlayfieldSampleBoxAdapter_wrapParameters(box) {
116
+ return {
117
+ gate: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.gate, ValueMapping.linearInteger(0, 2), StringMapping.indices("", ["Off", "On", "Loop"]), "Gate"),
118
+ mute: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.mute, ValueMapping.bool, StringMapping.bool, "Mute"),
119
+ solo: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.solo, ValueMapping.bool, StringMapping.bool, "Solo"),
120
+ polyphone: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.polyphone, ValueMapping.bool, StringMapping.bool, "Polyphone"),
121
+ exclude: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.exclude, ValueMapping.bool, StringMapping.bool, "Exclude"),
122
+ pitch: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.pitch, ValueMapping.linear(-1200, 1200), StringMapping.numeric({
123
+ unit: "cents",
124
+ bipolar: true,
125
+ fractionDigits: 0
126
+ }), "Pitch", 0.0),
127
+ sampleStart: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.sampleStart, ValueMapping.unipolar(), StringMapping.percent(), "Start", 0.0),
128
+ sampleEnd: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.sampleEnd, ValueMapping.unipolar(), StringMapping.percent(), "End", 1.0),
129
+ attack: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.attack, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
130
+ unit: "s",
131
+ unitPrefix: true,
132
+ fractionDigits: 1
133
+ }), "Attack"),
134
+ release: __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_parametric, "f").createParameter(box.release, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
135
+ unit: "s",
136
+ unitPrefix: true,
137
+ fractionDigits: 1
138
+ }), "Release")
139
+ };
140
+ };
@@ -17,7 +17,6 @@ export declare class PlayfieldDeviceBoxAdapter implements InstrumentDeviceBoxAda
17
17
  get box(): PlayfieldDeviceBox;
18
18
  get uuid(): UUID.Bytes;
19
19
  get address(): Address;
20
- get notesAddress(): Address;
21
20
  get labelField(): StringField;
22
21
  get iconField(): StringField;
23
22
  get defaultTrackType(): TrackType;
@@ -1 +1 @@
1
- {"version":3,"file":"PlayfieldDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/PlayfieldDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAC,yBAAyB,EAAC,MAAM,uCAAuC,CAAA;AAE/E,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,yBAA0B,YAAW,0BAA0B;;IACxE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;gBAQb,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAShE,KAAK,IAAI,IAAI;IAEb,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,YAAY,IAAI,OAAO,CAAwC;IACnE,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAC9C,IAAI,OAAO,IAAI,2BAA2B,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAuB;IAC7G,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IAExD,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CACpB"}
1
+ {"version":3,"file":"PlayfieldDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/PlayfieldDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAC,yBAAyB,EAAC,MAAM,uCAAuC,CAAA;AAE/E,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,yBAA0B,YAAW,0BAA0B;;IACxE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;gBAQb,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAShE,KAAK,IAAI,IAAI;IAEb,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAC9C,IAAI,OAAO,IAAI,2BAA2B,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAuB;IAC7G,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IAExD,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CACpB"}
@@ -1,3 +1,15 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _PlayfieldDeviceBoxAdapter_context, _PlayfieldDeviceBoxAdapter_box, _PlayfieldDeviceBoxAdapter_samples, _PlayfieldDeviceBoxAdapter_parametric;
1
13
  import { Pointers } from "@opendaw/studio-enums";
2
14
  import { Devices } from "../../DeviceAdapter";
3
15
  import { IndexedBoxAdapterCollection } from "../../IndexedBoxAdapterCollection";
@@ -5,35 +17,35 @@ import { PlayfieldSampleBoxAdapter } from "./Playfield/PlayfieldSampleBoxAdapter
5
17
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
6
18
  import { TrackType } from "../../timeline/TrackType";
7
19
  export class PlayfieldDeviceBoxAdapter {
8
- type = "instrument";
9
- accepts = "midi";
10
- #context;
11
- #box;
12
- #samples;
13
- #parametric;
14
20
  constructor(context, box) {
15
- this.#context = context;
16
- this.#box = box;
17
- this.#samples = IndexedBoxAdapterCollection.create(box.samples, box => context.boxAdapters.adapterFor(box, PlayfieldSampleBoxAdapter), Pointers.Sample);
18
- this.#parametric = new ParameterAdapterSet(this.#context);
21
+ this.type = "instrument";
22
+ this.accepts = "midi";
23
+ _PlayfieldDeviceBoxAdapter_context.set(this, void 0);
24
+ _PlayfieldDeviceBoxAdapter_box.set(this, void 0);
25
+ _PlayfieldDeviceBoxAdapter_samples.set(this, void 0);
26
+ _PlayfieldDeviceBoxAdapter_parametric.set(this, void 0);
27
+ __classPrivateFieldSet(this, _PlayfieldDeviceBoxAdapter_context, context, "f");
28
+ __classPrivateFieldSet(this, _PlayfieldDeviceBoxAdapter_box, box, "f");
29
+ __classPrivateFieldSet(this, _PlayfieldDeviceBoxAdapter_samples, IndexedBoxAdapterCollection.create(box.samples, box => context.boxAdapters.adapterFor(box, PlayfieldSampleBoxAdapter), Pointers.Sample), "f");
30
+ __classPrivateFieldSet(this, _PlayfieldDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_context, "f")), "f");
19
31
  }
20
- reset() { this.#samples.adapters().forEach(adapter => adapter.box.delete()); }
21
- get box() { return this.#box; }
22
- get uuid() { return this.#box.address.uuid; }
23
- get address() { return this.#box.address; }
24
- get notesAddress() { return this.#box.address.append(1000); }
25
- get labelField() { return this.#box.label; }
26
- get iconField() { return this.#box.icon; }
32
+ reset() { __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_samples, "f").adapters().forEach(adapter => adapter.box.delete()); }
33
+ get box() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f"); }
34
+ get uuid() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").address.uuid; }
35
+ get address() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").address; }
36
+ get labelField() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").label; }
37
+ get iconField() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").icon; }
27
38
  get defaultTrackType() { return TrackType.Notes; }
28
- get enabledField() { return this.#box.enabled; }
29
- get minimizedField() { return this.#box.minimized; }
39
+ get enabledField() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").enabled; }
40
+ get minimizedField() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").minimized; }
30
41
  get acceptsMidiEvents() { return true; }
31
- get samples() { return this.#samples; }
32
- get context() { return this.#context; }
42
+ get samples() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_samples, "f"); }
43
+ get context() { return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_context, "f"); }
33
44
  deviceHost() {
34
- return this.#context.boxAdapters
35
- .adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
45
+ return __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_context, "f").boxAdapters
46
+ .adapterFor(__classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
36
47
  }
37
48
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
38
- terminate() { this.#parametric.terminate(); }
49
+ terminate() { __classPrivateFieldGet(this, _PlayfieldDeviceBoxAdapter_parametric, "f").terminate(); }
39
50
  }
51
+ _PlayfieldDeviceBoxAdapter_context = new WeakMap(), _PlayfieldDeviceBoxAdapter_box = new WeakMap(), _PlayfieldDeviceBoxAdapter_samples = new WeakMap(), _PlayfieldDeviceBoxAdapter_parametric = new WeakMap();
@@ -1,88 +1,100 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _SoundfontDeviceBoxAdapter_instances, _SoundfontDeviceBoxAdapter_terminator, _SoundfontDeviceBoxAdapter_context, _SoundfontDeviceBoxAdapter_box, _SoundfontDeviceBoxAdapter_parametric, _SoundfontDeviceBoxAdapter_loader, _SoundfontDeviceBoxAdapter_soundfont, _SoundfontDeviceBoxAdapter_preset, _SoundfontDeviceBoxAdapter_loaderSubscription, _SoundfontDeviceBoxAdapter_wrapParameters, _SoundfontDeviceBoxAdapter_loaderObserver;
1
13
  import { MutableObservableOption, Terminable, Terminator } from "@opendaw/lib-std";
2
14
  import { Devices } from "../../DeviceAdapter";
3
15
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
4
16
  import { TrackType } from "../../timeline/TrackType";
5
17
  export class SoundfontDeviceBoxAdapter {
6
- type = "instrument";
7
- accepts = "midi";
8
- #terminator = new Terminator();
9
- #context;
10
- #box;
11
- #parametric;
12
- namedParameter; // let typescript infer the type
13
- #loader;
14
- #soundfont;
15
- #preset;
16
- #loaderSubscription = Terminable.Empty;
17
18
  constructor(context, box) {
18
- this.#context = context;
19
- this.#box = box;
20
- this.#parametric = new ParameterAdapterSet(this.#context);
21
- this.namedParameter = this.#wrapParameters(box);
22
- this.#loader = new MutableObservableOption();
23
- this.#soundfont = new MutableObservableOption();
24
- this.#preset = new MutableObservableOption();
25
- this.#terminator.ownAll(this.#loader.subscribe(this.#loaderObserver), this.#box.file.catchupAndSubscribe(({ targetVertex }) => this.#loader.wrapOption(targetVertex.map(({ box }) => context.soundfontManager.getOrCreate(box.address.uuid)))), this.#box.presetIndex.catchupAndSubscribe(owner => this.#soundfont.match({
26
- none: () => this.#preset.clear(),
27
- some: soundfont => this.#preset.wrap(soundfont.presets[owner.getValue()] ?? soundfont.presets[0])
19
+ _SoundfontDeviceBoxAdapter_instances.add(this);
20
+ this.type = "instrument";
21
+ this.accepts = "midi";
22
+ _SoundfontDeviceBoxAdapter_terminator.set(this, new Terminator());
23
+ _SoundfontDeviceBoxAdapter_context.set(this, void 0);
24
+ _SoundfontDeviceBoxAdapter_box.set(this, void 0);
25
+ _SoundfontDeviceBoxAdapter_parametric.set(this, void 0);
26
+ _SoundfontDeviceBoxAdapter_loader.set(this, void 0);
27
+ _SoundfontDeviceBoxAdapter_soundfont.set(this, void 0);
28
+ _SoundfontDeviceBoxAdapter_preset.set(this, void 0);
29
+ _SoundfontDeviceBoxAdapter_loaderSubscription.set(this, Terminable.Empty);
30
+ _SoundfontDeviceBoxAdapter_loaderObserver.set(this, (loader) => loader.match({
31
+ none: () => {
32
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").clear();
33
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").clear();
34
+ },
35
+ some: loader => loader.soundfont.match({
36
+ none: () => {
37
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").clear();
38
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").clear();
39
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, "f").terminate();
40
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, loader.subscribe(state => {
41
+ if (state.type === "loaded") {
42
+ const soundfont = loader.soundfont.unwrap();
43
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
44
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").wrap(soundfont);
45
+ }
46
+ else if (state.type === "error") {
47
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").clear();
48
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").clear();
49
+ }
50
+ else if (state.type === "idle") {
51
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").clear();
52
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").clear();
53
+ }
54
+ }), "f");
55
+ },
56
+ some: soundfont => {
57
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").wrap(soundfont);
58
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
59
+ }
60
+ })
61
+ }));
62
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_context, context, "f");
63
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_box, box, "f");
64
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_context, "f")), "f");
65
+ this.namedParameter = __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_instances, "m", _SoundfontDeviceBoxAdapter_wrapParameters).call(this, box);
66
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_loader, new MutableObservableOption(), "f");
67
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_soundfont, new MutableObservableOption(), "f");
68
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_preset, new MutableObservableOption(), "f");
69
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_terminator, "f").ownAll(__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loader, "f").subscribe(__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loaderObserver, "f")), __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").file.catchupAndSubscribe(({ targetVertex }) => __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loader, "f").wrapOption(targetVertex.map(({ box }) => context.soundfontManager.getOrCreate(box.address.uuid)))), __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").presetIndex.catchupAndSubscribe(owner => __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f").match({
70
+ none: () => __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").clear(),
71
+ some: soundfont => __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f").wrap(soundfont.presets[owner.getValue()] ?? soundfont.presets[0])
28
72
  })));
29
73
  }
30
- get loader() { return this.#loader; }
31
- get soundfont() { return this.#soundfont; }
32
- get preset() { return this.#preset; }
33
- get presetIndex() { return this.#box.presetIndex.getValue(); }
34
- get box() { return this.#box; }
35
- get uuid() { return this.#box.address.uuid; }
36
- get address() { return this.#box.address; }
37
- get labelField() { return this.#box.label; }
38
- get iconField() { return this.#box.icon; }
74
+ get loader() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loader, "f"); }
75
+ get soundfont() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_soundfont, "f"); }
76
+ get preset() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_preset, "f"); }
77
+ get presetIndex() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").presetIndex.getValue(); }
78
+ get box() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f"); }
79
+ get uuid() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").address.uuid; }
80
+ get address() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").address; }
81
+ get labelField() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").label; }
82
+ get iconField() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").icon; }
39
83
  get defaultTrackType() { return TrackType.Notes; }
40
- get enabledField() { return this.#box.enabled; }
41
- get minimizedField() { return this.#box.minimized; }
84
+ get enabledField() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").enabled; }
85
+ get minimizedField() { return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").minimized; }
42
86
  get acceptsMidiEvents() { return true; }
43
87
  deviceHost() {
44
- return this.#context.boxAdapters
45
- .adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
88
+ return __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_context, "f").boxAdapters
89
+ .adapterFor(__classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
46
90
  }
47
91
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
48
92
  terminate() {
49
- this.#loaderSubscription.terminate();
50
- this.#loaderSubscription = Terminable.Empty;
51
- this.#parametric.terminate();
52
- }
53
- #wrapParameters(_box) {
54
- return {};
93
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, "f").terminate();
94
+ __classPrivateFieldSet(this, _SoundfontDeviceBoxAdapter_loaderSubscription, Terminable.Empty, "f");
95
+ __classPrivateFieldGet(this, _SoundfontDeviceBoxAdapter_parametric, "f").terminate();
55
96
  }
56
- #loaderObserver = (loader) => loader.match({
57
- none: () => {
58
- this.#preset.clear();
59
- this.#soundfont.clear();
60
- },
61
- some: loader => loader.soundfont.match({
62
- none: () => {
63
- this.#preset.clear();
64
- this.#soundfont.clear();
65
- this.#loaderSubscription.terminate();
66
- this.#loaderSubscription = loader.subscribe(state => {
67
- if (state.type === "loaded") {
68
- const soundfont = loader.soundfont.unwrap();
69
- this.#preset.wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
70
- this.#soundfont.wrap(soundfont);
71
- }
72
- else if (state.type === "error") {
73
- this.#preset.clear();
74
- this.#soundfont.clear();
75
- }
76
- else if (state.type === "idle") {
77
- this.#preset.clear();
78
- this.#soundfont.clear();
79
- }
80
- });
81
- },
82
- some: soundfont => {
83
- this.#soundfont.wrap(soundfont);
84
- this.#preset.wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
85
- }
86
- })
87
- });
88
97
  }
98
+ _SoundfontDeviceBoxAdapter_terminator = new WeakMap(), _SoundfontDeviceBoxAdapter_context = new WeakMap(), _SoundfontDeviceBoxAdapter_box = new WeakMap(), _SoundfontDeviceBoxAdapter_parametric = new WeakMap(), _SoundfontDeviceBoxAdapter_loader = new WeakMap(), _SoundfontDeviceBoxAdapter_soundfont = new WeakMap(), _SoundfontDeviceBoxAdapter_preset = new WeakMap(), _SoundfontDeviceBoxAdapter_loaderSubscription = new WeakMap(), _SoundfontDeviceBoxAdapter_loaderObserver = new WeakMap(), _SoundfontDeviceBoxAdapter_instances = new WeakSet(), _SoundfontDeviceBoxAdapter_wrapParameters = function _SoundfontDeviceBoxAdapter_wrapParameters(_box) {
99
+ return {};
100
+ };