@opendaw/studio-adapters 0.0.78 → 0.0.80

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 (50) hide show
  1. package/dist/BoxAdapters.d.ts +2 -1
  2. package/dist/BoxAdapters.d.ts.map +1 -1
  3. package/dist/BoxAdapters.js +3 -0
  4. package/dist/DeviceAdapter.d.ts +2 -0
  5. package/dist/DeviceAdapter.d.ts.map +1 -1
  6. package/dist/DeviceBox.d.ts.map +1 -1
  7. package/dist/DeviceBox.js +3 -8
  8. package/dist/DeviceManualUrls.d.ts +1 -0
  9. package/dist/DeviceManualUrls.d.ts.map +1 -1
  10. package/dist/DeviceManualUrls.js +1 -0
  11. package/dist/EngineProcessorAttachment.d.ts +1 -0
  12. package/dist/EngineProcessorAttachment.d.ts.map +1 -1
  13. package/dist/EngineStateSchema.d.ts +3 -0
  14. package/dist/EngineStateSchema.d.ts.map +1 -1
  15. package/dist/EngineStateSchema.js +5 -1
  16. package/dist/VaryingTempoMap.d.ts.map +1 -1
  17. package/dist/VaryingTempoMap.js +3 -0
  18. package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts +36 -0
  19. package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.d.ts.map +1 -0
  20. package/dist/devices/audio-effects/NeuralAmpDeviceBoxAdapter.js +60 -0
  21. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts.map +1 -1
  22. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +3 -3
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/project/ProjectUtils.d.ts.map +1 -1
  27. package/dist/project/ProjectUtils.js +39 -44
  28. package/dist/protocols.d.ts +1 -0
  29. package/dist/protocols.d.ts.map +1 -1
  30. package/dist/timeline/RegionBoxAdapter.d.ts +2 -3
  31. package/dist/timeline/RegionBoxAdapter.d.ts.map +1 -1
  32. package/dist/timeline/TrackBoxAdapter.d.ts +2 -2
  33. package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
  34. package/dist/timeline/TrackBoxAdapter.js +36 -30
  35. package/dist/timeline/event/SelectableValueEvent.d.ts +5 -0
  36. package/dist/timeline/event/SelectableValueEvent.d.ts.map +1 -0
  37. package/dist/timeline/event/SelectableValueEvent.js +1 -0
  38. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +3 -1
  39. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
  40. package/dist/timeline/region/AudioRegionBoxAdapter.js +40 -13
  41. package/dist/timeline/region/FadingAdapter.d.ts +19 -0
  42. package/dist/timeline/region/FadingAdapter.d.ts.map +1 -0
  43. package/dist/timeline/region/FadingAdapter.js +41 -0
  44. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts +1 -1
  45. package/dist/timeline/region/NoteRegionBoxAdapter.d.ts.map +1 -1
  46. package/dist/timeline/region/NoteRegionBoxAdapter.js +7 -1
  47. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts +1 -1
  48. package/dist/timeline/region/ValueRegionBoxAdapter.d.ts.map +1 -1
  49. package/dist/timeline/region/ValueRegionBoxAdapter.js +7 -1
  50. package/package.json +38 -38
@@ -1,4 +1,4 @@
1
- import { AssertType, Class, Terminable } from "@opendaw/lib-std";
1
+ import { AssertType, Class, Option, Terminable } from "@opendaw/lib-std";
2
2
  import { Box } from "@opendaw/lib-box";
3
3
  import { BoxAdaptersContext } from "./BoxAdaptersContext";
4
4
  import { BoxAdapter } from "./BoxAdapter";
@@ -7,5 +7,6 @@ export declare class BoxAdapters implements Terminable {
7
7
  constructor(context: BoxAdaptersContext);
8
8
  terminate(): void;
9
9
  adapterFor<BOX extends Box, T extends BoxAdapter>(box: BOX, checkType: Class<T> | AssertType<T>): T;
10
+ optAdapter(box: Box): Option<BoxAdapter>;
10
11
  }
11
12
  //# sourceMappingURL=BoxAdapters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAKL,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAoG5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAsBvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;CAgFtG"}
1
+ {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAqG5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAuBvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CAiE3C"}
@@ -64,6 +64,7 @@ import { MIDIOutputDeviceBoxAdapter } from "./devices/instruments/MIDIOutputDevi
64
64
  import { VelocityDeviceBoxAdapter } from "./devices/midi-effects/VelocityDeviceBoxAdapter";
65
65
  import { TidalDeviceBoxAdapter } from "./devices/audio-effects/TidalDeviceBoxAdapter";
66
66
  import { DattorroReverbDeviceBoxAdapter } from "./devices/audio-effects/DattorroReverbDeviceBoxAdapter";
67
+ import { NeuralAmpDeviceBoxAdapter } from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
67
68
  import { AudioPitchStretchBoxAdapter } from "./audio/AudioPitchStretchBoxAdapter";
68
69
  import { TransientMarkerBoxAdapter } from "./audio/TransientMarkerBoxAdapter";
69
70
  import { WarpMarkerBoxAdapter } from "./audio/WarpMarkerBoxAdapter";
@@ -113,6 +114,7 @@ export class BoxAdapters {
113
114
  }
114
115
  return panic("Unknown checkType method");
115
116
  }
117
+ optAdapter(box) { return __classPrivateFieldGet(this, _BoxAdapters_adapters, "f").opt(box.address.uuid); }
116
118
  }
117
119
  _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _BoxAdapters_deleted = new WeakMap(), _BoxAdapters_terminable = new WeakMap(), _BoxAdapters_instances = new WeakSet(), _BoxAdapters_create = function _BoxAdapters_create(unknownBox) {
118
120
  return asDefined(unknownBox.accept({
@@ -149,6 +151,7 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
149
151
  visitModuleGainBox: (box) => new ModuleGainAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
150
152
  visitModuleMultiplierBox: (box) => new ModuleMultiplierAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
151
153
  visitNanoDeviceBox: (box) => new NanoDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
154
+ visitNeuralAmpDeviceBox: (box) => new NeuralAmpDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
152
155
  visitNoteClipBox: (box) => new NoteClipBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
153
156
  visitNoteEventBox: (box) => new NoteEventBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
154
157
  visitNoteEventCollectionBox: (box) => new NoteEventCollectionBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
@@ -37,8 +37,10 @@ export interface InstrumentDeviceBoxAdapter extends DeviceBoxAdapter, LabeledAud
37
37
  export interface DeviceHost extends BoxAdapter, LabeledAudioOutputsOwner {
38
38
  readonly class: "device-host";
39
39
  get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MIDIEffectHost>;
40
+ get midiEffectsField(): Field<Pointers.MIDIEffectHost>;
40
41
  get inputAdapter(): Option<AudioUnitInputAdapter>;
41
42
  get audioEffects(): IndexedBoxAdapterCollection<AudioEffectDeviceAdapter, Pointers.AudioEffectHost>;
43
+ get audioEffectsField(): Field<Pointers.AudioEffectHost>;
42
44
  get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
43
45
  get tracksField(): Field<Pointers.TrackCollection>;
44
46
  get minimizedField(): BooleanField;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceAdapter.d.ts","sourceRoot":"","sources":["../src/DeviceAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceAdapter.d.ts","sourceRoot":"","sources":["../src/DeviceAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceBox.d.ts","sourceRoot":"","sources":["../src/DeviceBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAA0B,KAAK,EAAQ,MAAM,kBAAkB,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;CAC1B,GAAG,GAAG,CAAA;AAEP,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;CAC9C,GAAG,SAAS,CAAA;AAEb,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtE,KAAK,EAAE,UAAU,CAAA;CACpB,GAAG,SAAS,CAAA;AAEb,yBAAiB,cAAc,CAAC;IACrB,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,SAIqB,CAAA;IAE5D,MAAM,qBAAqB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,mBACgB,CAAA;IAEjE,MAAM,iBAAiB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,eAEuD,CAAA;IAEpG,MAAM,eAAe,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAEyB,CAAA;IACpE,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,WAE0B,CAAA;IACtE,MAAM,kBAAkB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE4B,CAAA;IAC1E,MAAM,oBAAoB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE8B,CAAA;IAC9E,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,UAE0B,CAAA;CAChF"}
1
+ {"version":3,"file":"DeviceBox.d.ts","sourceRoot":"","sources":["../src/DeviceBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAA0B,KAAK,EAAQ,MAAM,kBAAkB,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;CAC1B,GAAG,GAAG,CAAA;AAEP,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;CAC9C,GAAG,SAAS,CAAA;AAEb,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtE,KAAK,EAAE,UAAU,CAAA;CACpB,GAAG,SAAS,CAAA;AAEb,yBAAiB,cAAc,CAAC;IACrB,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,SAAuC,CAAA;IAC9E,MAAM,qBAAqB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,mBACI,CAAA;IACrD,MAAM,iBAAiB,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,eACqD,CAAA;IAClG,MAAM,eAAe,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAEyB,CAAA;IACpE,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,WAE0B,CAAA;IACtE,MAAM,kBAAkB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE4B,CAAA;IAC1E,MAAM,oBAAoB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,YAE8B,CAAA;IAC9E,MAAM,gBAAgB,GAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAG,UAE0B,CAAA;CAChF"}
package/dist/DeviceBox.js CHANGED
@@ -1,15 +1,10 @@
1
- import { Pointers } from "@opendaw/studio-enums";
2
1
  import { BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
3
2
  import { isDefined, isInstanceOf, panic } from "@opendaw/lib-std";
4
3
  export var DeviceBoxUtils;
5
4
  (function (DeviceBoxUtils) {
6
- DeviceBoxUtils.isDeviceBox = (box) => "host" in box && isInstanceOf(box.host, PointerField) &&
7
- "label" in box && isInstanceOf(box.label, StringField) &&
8
- "enabled" in box && isInstanceOf(box.enabled, BooleanField) &&
9
- "minimized" in box && isInstanceOf(box.minimized, BooleanField);
10
- DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.host.pointerType === Pointers.InstrumentHost;
11
- DeviceBoxUtils.isEffectDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && "index" in box && isInstanceOf(box.index, Int32Field) &&
12
- (box.host.pointerType === Pointers.MIDIEffectHost || box.host.pointerType === Pointers.AudioEffectHost);
5
+ DeviceBoxUtils.isDeviceBox = (box) => box.tags.type === "device";
6
+ DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.tags.deviceType === "instrument";
7
+ DeviceBoxUtils.isEffectDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && (box.tags.deviceType === "audio-effect" || box.tags.deviceType === "midi-effect");
13
8
  DeviceBoxUtils.lookupHostField = (box) => isDefined(box) && "host" in box && isInstanceOf(box.host, PointerField)
14
9
  ? box.host : panic(`Could not find 'host' field in '${box?.name}'`);
15
10
  DeviceBoxUtils.lookupLabelField = (box) => isDefined(box) && "label" in box && isInstanceOf(box.label, StringField)
@@ -16,6 +16,7 @@ export declare namespace DeviceManualUrls {
16
16
  const Tidal = "manuals/devices/audio/tidal";
17
17
  const Revamp = "manuals/devices/audio/revamp";
18
18
  const Modular = "manuals/devices/audio/modular";
19
+ const NeuralAmp = "manuals/devices/audio/neural-amp";
19
20
  const Tape = "manuals/devices/instruments/tape";
20
21
  const Nano = "manuals/devices/instruments/nano";
21
22
  const Playfield = "manuals/devices/instruments/playfield";
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,UAAU,sCAAsC,CAAA;IACtD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,uCAAuC,CAAA;IACnD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAG/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,UAAU,4CAA4C,CAAA;IAC5D,MAAM,SAAS,0CAA0C,CAAA;CACnE"}
1
+ {"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,UAAU,sCAAsC,CAAA;IACtD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,uCAAuC,CAAA;IACnD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,SAAS,qCAAqC,CAAA;IAGpD,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,UAAU,4CAA4C,CAAA;IAC5D,MAAM,SAAS,0CAA0C,CAAA;CACnE"}
@@ -20,6 +20,7 @@ export var DeviceManualUrls;
20
20
  DeviceManualUrls.Tidal = "manuals/devices/audio/tidal";
21
21
  DeviceManualUrls.Revamp = "manuals/devices/audio/revamp";
22
22
  DeviceManualUrls.Modular = "manuals/devices/audio/modular";
23
+ DeviceManualUrls.NeuralAmp = "manuals/devices/audio/neural-amp";
23
24
  // Instruments
24
25
  DeviceManualUrls.Tape = "manuals/devices/instruments/tape";
25
26
  DeviceManualUrls.Nano = "manuals/devices/instruments/nano";
@@ -3,6 +3,7 @@ export type ProcessorOptions = {};
3
3
  export type EngineProcessorAttachment = {
4
4
  syncStreamBuffer: SharedArrayBuffer;
5
5
  controlFlagsBuffer: SharedArrayBuffer;
6
+ hrClockBuffer: SharedArrayBuffer;
6
7
  project: ArrayBufferLike;
7
8
  exportConfiguration?: ExportStemsConfiguration;
8
9
  options?: ProcessorOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,wBAAwB,CAAA;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAE9E,yBAAiB,wBAAwB,CAAC;IAC/B,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,wBAAwB,CAAC,KAAG,GAIhE,CAAA;IAEC,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA4D,CAAA;IAErG,MAAM,0BAA0B,GAAI,eAAe,wBAAwB,KAAG,IAiBpF,CAAA;CACJ"}
1
+ {"version":3,"file":"EngineProcessorAttachment.d.ts","sourceRoot":"","sources":["../src/EngineProcessorAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGjC,MAAM,MAAM,yBAAyB,GAAG;IACpC,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,mBAAmB,CAAC,EAAE,wBAAwB,CAAA;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAE9E,yBAAiB,wBAAwB,CAAC;IAC/B,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,wBAAwB,CAAC,KAAG,GAIhE,CAAA;IAEC,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA4D,CAAA;IAErG,MAAM,0BAA0B,GAAI,eAAe,wBAAwB,KAAG,IAiBpF,CAAA;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import { Schema } from "@opendaw/lib-std";
2
+ export declare const PERF_BUFFER_SIZE = 512;
2
3
  export declare const EngineStateSchema: () => Schema.IO<{
3
4
  position: number;
4
5
  bpm: number;
@@ -7,6 +8,8 @@ export declare const EngineStateSchema: () => Schema.IO<{
7
8
  isPlaying: boolean;
8
9
  isCountingIn: boolean;
9
10
  isRecording: boolean;
11
+ perfIndex: number;
12
+ perfBuffer: Float32Array<ArrayBufferLike>;
10
13
  }>;
11
14
  export type EngineState = ReturnType<typeof EngineStateSchema>["object"];
12
15
  //# sourceMappingURL=EngineStateSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EngineStateSchema.d.ts","sourceRoot":"","sources":["../src/EngineStateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,eAAO,MAAM,iBAAiB;;;;;;;;EAQ5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAA"}
1
+ {"version":3,"file":"EngineStateSchema.d.ts","sourceRoot":"","sources":["../src/EngineStateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAGvC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC,eAAO,MAAM,iBAAiB;;;;;;;;;;EAU5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import { Schema } from "@opendaw/lib-std";
2
+ // Ring buffer size: ~1 second at 48kHz = 375 blocks, use 512 (power of 2)
3
+ export const PERF_BUFFER_SIZE = 512;
2
4
  export const EngineStateSchema = Schema.createBuilder({
3
5
  position: Schema.float,
4
6
  bpm: Schema.float,
@@ -6,5 +8,7 @@ export const EngineStateSchema = Schema.createBuilder({
6
8
  countInBeatsRemaining: Schema.float,
7
9
  isPlaying: Schema.bool,
8
10
  isCountingIn: Schema.bool,
9
- isRecording: Schema.bool
11
+ isRecording: Schema.bool,
12
+ perfIndex: Schema.int32,
13
+ perfBuffer: Schema.floats(PERF_BUFFER_SIZE)
10
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAC,QAAQ,EAAgB,YAAY,EAAa,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAEhE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ;;gBAGhC,OAAO,EAAE,kBAAkB;IAIvC,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG;IAQ/B,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO;IAItC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA+BlC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO;IAwBxD,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY;CAQxD"}
1
+ {"version":3,"file":"VaryingTempoMap.d.ts","sourceRoot":"","sources":["../src/VaryingTempoMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAQ,OAAO,EAAmB,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAC,QAAQ,EAAgB,YAAY,EAAa,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAEhE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ;;gBAGhC,OAAO,EAAE,kBAAkB;IAIvC,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG;IAQ/B,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO;IAOtC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA+BlC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO;IAwBxD,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY;CAQxD"}
@@ -27,6 +27,9 @@ export class VaryingTempoMap {
27
27
  return __classPrivateFieldGet(this, _VaryingTempoMap_adapter, "f").tempoTrackEvents.mapOr(collection => collection.valueAt(position, storageBpm), storageBpm);
28
28
  }
29
29
  ppqnToSeconds(position) {
30
+ if (position < 0) {
31
+ return -this.intervalToSeconds(position, 0);
32
+ }
30
33
  return this.intervalToSeconds(0, position);
31
34
  }
32
35
  secondsToPPQN(time) {
@@ -0,0 +1,36 @@
1
+ import { NeuralAmpDeviceBox } from "@opendaw/studio-boxes";
2
+ import { UUID } from "@opendaw/lib-std";
3
+ import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
4
+ import { Pointers } from "@opendaw/studio-enums";
5
+ import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
7
+ import { BoxAdaptersContext } from "../../BoxAdaptersContext";
8
+ import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
9
+ export declare class NeuralAmpDeviceBoxAdapter implements AudioEffectDeviceAdapter {
10
+ #private;
11
+ readonly type = "audio-effect";
12
+ readonly accepts = "audio";
13
+ readonly manualUrl = "manuals/devices/audio/neural-amp";
14
+ readonly namedParameter: {
15
+ readonly inputGain: import("../..").AutomatableParameterFieldAdapter<number>;
16
+ readonly outputGain: import("../..").AutomatableParameterFieldAdapter<number>;
17
+ readonly mix: import("../..").AutomatableParameterFieldAdapter<number>;
18
+ };
19
+ constructor(context: BoxAdaptersContext, box: NeuralAmpDeviceBox);
20
+ get box(): NeuralAmpDeviceBox;
21
+ get uuid(): UUID.Bytes;
22
+ get address(): Address;
23
+ get indexField(): Int32Field;
24
+ get labelField(): StringField;
25
+ get enabledField(): BooleanField;
26
+ get minimizedField(): BooleanField;
27
+ get host(): PointerField<Pointers.AudioEffectHost>;
28
+ get modelJsonField(): StringField;
29
+ get monoField(): BooleanField;
30
+ get spectrum(): Address;
31
+ deviceHost(): DeviceHost;
32
+ audioUnitBoxAdapter(): AudioUnitBoxAdapter;
33
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
34
+ terminate(): void;
35
+ }
36
+ //# sourceMappingURL=NeuralAmpDeviceBoxAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeuralAmpDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/NeuralAmpDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAwB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,yBAA0B,YAAW,wBAAwB;;IACtE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAC1B,QAAQ,CAAC,SAAS,sCAA6B;IAM/C,QAAQ,CAAC,cAAc;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAOhE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAC1E,IAAI,cAAc,IAAI,WAAW,CAA6B;IAC9D,IAAI,SAAS,IAAI,YAAY,CAAwB;IACrD,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAEhE,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAExC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIrD,SAAS,IAAI,IAAI;CAmBpB"}
@@ -0,0 +1,60 @@
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 _NeuralAmpDeviceBoxAdapter_instances, _NeuralAmpDeviceBoxAdapter_context, _NeuralAmpDeviceBoxAdapter_box, _NeuralAmpDeviceBoxAdapter_parametric, _NeuralAmpDeviceBoxAdapter_wrapParameters;
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
+ import { Devices } from "../../DeviceAdapter";
15
+ import { DeviceManualUrls } from "../../DeviceManualUrls";
16
+ import { ParameterAdapterSet } from "../../ParameterAdapterSet";
17
+ export class NeuralAmpDeviceBoxAdapter {
18
+ constructor(context, box) {
19
+ _NeuralAmpDeviceBoxAdapter_instances.add(this);
20
+ this.type = "audio-effect";
21
+ this.accepts = "audio";
22
+ this.manualUrl = DeviceManualUrls.NeuralAmp;
23
+ _NeuralAmpDeviceBoxAdapter_context.set(this, void 0);
24
+ _NeuralAmpDeviceBoxAdapter_box.set(this, void 0);
25
+ _NeuralAmpDeviceBoxAdapter_parametric.set(this, void 0);
26
+ __classPrivateFieldSet(this, _NeuralAmpDeviceBoxAdapter_context, context, "f");
27
+ __classPrivateFieldSet(this, _NeuralAmpDeviceBoxAdapter_box, box, "f");
28
+ __classPrivateFieldSet(this, _NeuralAmpDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f")), "f");
29
+ this.namedParameter = __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_instances, "m", _NeuralAmpDeviceBoxAdapter_wrapParameters).call(this, box);
30
+ }
31
+ get box() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f"); }
32
+ get uuid() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").address.uuid; }
33
+ get address() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").address; }
34
+ get indexField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").index; }
35
+ get labelField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").label; }
36
+ get enabledField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").enabled; }
37
+ get minimizedField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").minimized; }
38
+ get host() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host; }
39
+ get modelJsonField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").modelJson; }
40
+ get monoField() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").mono; }
41
+ get spectrum() { return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").address.append(0xFFF); }
42
+ deviceHost() {
43
+ return __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_context, "f").boxAdapters
44
+ .adapterFor(__classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
45
+ }
46
+ audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
47
+ *labeledAudioOutputs() {
48
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
49
+ }
50
+ terminate() {
51
+ __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_parametric, "f").terminate();
52
+ }
53
+ }
54
+ _NeuralAmpDeviceBoxAdapter_context = new WeakMap(), _NeuralAmpDeviceBoxAdapter_box = new WeakMap(), _NeuralAmpDeviceBoxAdapter_parametric = new WeakMap(), _NeuralAmpDeviceBoxAdapter_instances = new WeakSet(), _NeuralAmpDeviceBoxAdapter_wrapParameters = function _NeuralAmpDeviceBoxAdapter_wrapParameters(box) {
55
+ return {
56
+ inputGain: __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_parametric, "f").createParameter(box.inputGain, ValueMapping.decibel(-72.0, 0.0, 12.0), StringMapping.numeric({ unit: "dB", fractionDigits: 1 }), "input"),
57
+ outputGain: __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_parametric, "f").createParameter(box.outputGain, ValueMapping.decibel(-72.0, 0.0, 12.0), StringMapping.numeric({ unit: "dB", fractionDigits: 1 }), "output"),
58
+ mix: __classPrivateFieldGet(this, _NeuralAmpDeviceBoxAdapter_parametric, "f").createParameter(box.mix, ValueMapping.linear(0.0, 1.0), StringMapping.percent(), "Mix")
59
+ };
60
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _PlayfieldSampleBoxAdapter_instances, _PlayfieldSampleBoxAdapter_terminator, _PlayfieldSampleBoxAdapter_context, _PlayfieldSampleBoxAdapter_box, _PlayfieldSampleBoxAdapter_midiEffects, _PlayfieldSampleBoxAdapter_audioEffects, _PlayfieldSampleBoxAdapter_parametric, _PlayfieldSampleBoxAdapter_file, _PlayfieldSampleBoxAdapter_wrapParameters;
13
13
  import { Pointers } from "@opendaw/studio-enums";
14
- import { PlayfieldSampleBox } from "@opendaw/studio-boxes";
15
- import { Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
14
+ import { AudioFileBox, PlayfieldSampleBox } from "@opendaw/studio-boxes";
15
+ import { asInstanceOf, Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
16
16
  import { Devices } from "../../../DeviceAdapter";
17
17
  import { IndexedBoxAdapterCollection } from "../../../IndexedBoxAdapterCollection";
18
18
  import { ParameterAdapterSet } from "../../../ParameterAdapterSet";
@@ -103,7 +103,7 @@ export class PlayfieldSampleBoxAdapter {
103
103
  get audioEffects() {
104
104
  return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_audioEffects, "f");
105
105
  }
106
- get labelField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").label; }
106
+ get labelField() { return asInstanceOf(__classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").file.targetVertex.unwrap().box, AudioFileBox).fileName; }
107
107
  get enabledField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").enabled; }
108
108
  get minimizedField() { return __classPrivateFieldGet(this, _PlayfieldSampleBoxAdapter_box, "f").minimized; }
109
109
  device() {
package/dist/index.d.ts CHANGED
@@ -55,6 +55,7 @@ export * from "./devices/audio-effects/FoldDeviceBoxAdapter";
55
55
  export * from "./devices/audio-effects/GateDeviceBoxAdapter";
56
56
  export * from "./devices/audio-effects/MaximizerDeviceBoxAdapter";
57
57
  export * from "./devices/audio-effects/ModularDeviceBoxAdapter";
58
+ export * from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
58
59
  export * from "./devices/audio-effects/RevampDeviceBoxAdapter";
59
60
  export * from "./devices/audio-effects/ReverbDeviceBoxAdapter";
60
61
  export * from "./devices/audio-effects/StereoToolDeviceBoxAdapter";
@@ -146,8 +147,10 @@ export * from "./timeline/collection/NoteEventCollectionBoxAdapter";
146
147
  export * from "./timeline/collection/ValueEventCollectionBoxAdapter";
147
148
  export * from "./timeline/event/InterpolationFieldAdapter";
148
149
  export * from "./timeline/event/NoteEventBoxAdapter";
150
+ export * from "./timeline/event/SelectableValueEvent";
149
151
  export * from "./timeline/event/ValueEventBoxAdapter";
150
152
  export * from "./timeline/region/AudioRegionBoxAdapter";
153
+ export * from "./timeline/region/FadingAdapter";
151
154
  export * from "./timeline/region/MutableRegion";
152
155
  export * from "./timeline/region/NoteRegionBoxAdapter";
153
156
  export * from "./timeline/region/ValueRegionBoxAdapter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,oCAAoC,CAAA;AAClD,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,uBAAuB,CAAA;AACrC,cAAc,oCAAoC,CAAA;AAClD,cAAc,0BAA0B,CAAA;AACxC,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oDAAoD,CAAA;AAClE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,wDAAwD,CAAA;AACtE,cAAc,+CAA+C,CAAA;AAC7D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,mDAAmD,CAAA;AACjE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,mDAAmD,CAAA;AACjE,cAAc,gDAAgD,CAAA;AAC9D,cAAc,gDAAgD,CAAA;AAC9D,cAAc,oDAAoD,CAAA;AAClE,cAAc,+CAA+C,CAAA;AAC7D,cAAc,4DAA4D,CAAA;AAC1E,cAAc,kDAAkD,CAAA;AAChE,cAAc,4CAA4C,CAAA;AAC1D,cAAc,sCAAsC,CAAA;AACpD,cAAc,2DAA2D,CAAA;AACzE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,iDAAiD,CAAA;AAC/D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,oDAAoD,CAAA;AAClE,cAAc,4CAA4C,CAAA;AAC1D,cAAc,iDAAiD,CAAA;AAC/D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,0DAA0D,CAAA;AACxE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,kDAAkD,CAAA;AAChE,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qCAAqC,CAAA;AACnD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qCAAqC,CAAA;AACnD,cAAc,oCAAoC,CAAA;AAClD,cAAc,qCAAqC,CAAA;AACnD,cAAc,qDAAqD,CAAA;AACnE,cAAc,sDAAsD,CAAA;AACpE,cAAc,4CAA4C,CAAA;AAC1D,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,yCAAyC,CAAA;AACvD,cAAc,UAAU,CAAA;AACxB,YAAY,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -57,6 +57,7 @@ export * from "./devices/audio-effects/FoldDeviceBoxAdapter";
57
57
  export * from "./devices/audio-effects/GateDeviceBoxAdapter";
58
58
  export * from "./devices/audio-effects/MaximizerDeviceBoxAdapter";
59
59
  export * from "./devices/audio-effects/ModularDeviceBoxAdapter";
60
+ export * from "./devices/audio-effects/NeuralAmpDeviceBoxAdapter";
60
61
  export * from "./devices/audio-effects/RevampDeviceBoxAdapter";
61
62
  export * from "./devices/audio-effects/ReverbDeviceBoxAdapter";
62
63
  export * from "./devices/audio-effects/StereoToolDeviceBoxAdapter";
@@ -148,8 +149,10 @@ export * from "./timeline/collection/NoteEventCollectionBoxAdapter";
148
149
  export * from "./timeline/collection/ValueEventCollectionBoxAdapter";
149
150
  export * from "./timeline/event/InterpolationFieldAdapter";
150
151
  export * from "./timeline/event/NoteEventBoxAdapter";
152
+ export * from "./timeline/event/SelectableValueEvent";
151
153
  export * from "./timeline/event/ValueEventBoxAdapter";
152
154
  export * from "./timeline/region/AudioRegionBoxAdapter";
155
+ export * from "./timeline/region/FadingAdapter";
153
156
  export * from "./timeline/region/MutableRegion";
154
157
  export * from "./timeline/region/NoteRegionBoxAdapter";
155
158
  export * from "./timeline/region/ValueRegionBoxAdapter";
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectUtils.d.ts","sourceRoot":"","sources":["../../src/project/ProjectUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAcrC,OAAO,EAEH,YAAY,EASf,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAGrD,yBAAiB,YAAY,CAAC;IASnB,MAAM,iBAAiB,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,4DAAwD,eAAe,EACvE,UAAS;QACL,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,KAClC,aAAa,CAAC,YAAY,CA6B/B,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,4DAAwD,eAAe,EACvE,iBAAgB,IAAU,KAAG,IA8C3D,CAAA;CAoGJ"}
1
+ {"version":3,"file":"ProjectUtils.d.ts","sourceRoot":"","sources":["../../src/project/ProjectUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAarC,OAAO,EAAC,YAAY,EAAmD,MAAM,uBAAuB,CAAA;AAEpG,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAGrD,yBAAiB,YAAY,CAAC;IAUnB,MAAM,iBAAiB,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,4DAAwD,eAAe,EACvE,UAAS;QACL,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,KAClC,aAAa,CAAC,YAAY,CAyB/B,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,4DAAwD,eAAe,EACvE,iBAAgB,IAAU,KAAG,IA+C3D,CAAA;CA6FJ"}
@@ -1,5 +1,5 @@
1
- import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf, Predicates, SetMultimap, UUID } from "@opendaw/lib-std";
2
- import { AudioFileBox, AudioUnitBox, AuxSendBox, SelectionBox, SoundfontFileBox, TrackBox, TransientMarkerBox } from "@opendaw/studio-boxes";
1
+ import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
2
+ import { AudioUnitBox, AuxSendBox, TrackBox } from "@opendaw/studio-boxes";
3
3
  import { IndexedBox, PointerField } from "@opendaw/lib-box";
4
4
  import { UnionBoxTypes } from "../unions";
5
5
  import { AudioUnitOrdering } from "../factories/AudioUnitOrdering";
@@ -10,24 +10,20 @@ export var ProjectUtils;
10
10
  const excludeTimelinePredicate = (box) => box.accept({
11
11
  visitTrackBox: (_box) => true
12
12
  }) === true;
13
+ const shouldExclude = (box) => box.ephemeral || box.name === AuxSendBox.ClassName;
13
14
  ProjectUtils.extractAudioUnits = (audioUnitBoxes, { boxGraph, mandatoryBoxes: { primaryAudioBus, rootBox } }, options = {}) => {
14
15
  assert(Arrays.satisfy(audioUnitBoxes, isSameGraph), "AudioUnits must share the same BoxGraph");
15
- // TODO Implement include options.
16
16
  assert(!options.includeAux && !options.includeBus, "Options are not yet implemented");
17
- const excludeBox = options?.excludeTimeline === true ? excludeTimelinePredicate : Predicates.alwaysFalse;
18
- // Get dependencies using outgoing pointers only (no mandatory incoming following)
19
- // This avoids pulling in boxes from previous copies that point to shared AudioFileBox
20
- const baseDeps = audioUnitBoxes
21
- .flatMap(box => Array.from(box.graph.dependenciesOf(box, { alwaysFollowMandatory: false, excludeBox }).boxes));
22
- // Explicitly add instruments (they have mandatory incoming pointer to AudioUnitBox.input)
23
- const instruments = audioUnitBoxes
24
- .flatMap(audioUnitBox => audioUnitBox.input.pointerHub.incoming().map(({ box }) => box));
25
- // Deduplicate by UUID
17
+ const excludeBox = (box) => shouldExclude(box) || (options?.excludeTimeline === true && excludeTimelinePredicate(box));
26
18
  const seen = UUID.newSet(uuid => uuid);
27
- const dependencies = [...baseDeps, ...instruments]
28
- .filter(box => box.name !== SelectionBox.ClassName && box.name !== AuxSendBox.ClassName)
19
+ const dependencies = audioUnitBoxes
20
+ .flatMap(box => Array.from(box.graph.dependenciesOf(box, {
21
+ alwaysFollowMandatory: true,
22
+ stopAtResources: true,
23
+ excludeBox
24
+ }).boxes))
29
25
  .filter(box => {
30
- if (seen.opt(box.address.uuid).nonEmpty()) {
26
+ if (seen.hasKey(box.address.uuid)) {
31
27
  return false;
32
28
  }
33
29
  seen.add(box.address.uuid);
@@ -46,7 +42,6 @@ export var ProjectUtils;
46
42
  const regionBoxSet = new Set(regionBoxes);
47
43
  const trackBoxSet = new Set();
48
44
  const audioUnitBoxSet = new SetMultimap();
49
- // Collect AudioUnits and Tracks
50
45
  regionBoxes.forEach(regionBox => {
51
46
  const trackBox = asInstanceOf(regionBox.regions.targetVertex.unwrap().box, TrackBox);
52
47
  trackBoxSet.add(trackBox);
@@ -56,15 +51,18 @@ export var ProjectUtils;
56
51
  console.debug(`Found ${audioUnitBoxSet.keyCount()} audioUnits`);
57
52
  console.debug(`Found ${trackBoxSet.size} tracks`);
58
53
  const audioUnitBoxes = [...audioUnitBoxSet.keys()];
59
- const excludeBox = box => (isInstanceOf(box, TrackBox) && !trackBoxSet.has(box))
54
+ const excludeBox = (box) => shouldExclude(box)
55
+ || (isInstanceOf(box, TrackBox) && !trackBoxSet.has(box))
60
56
  || (UnionBoxTypes.isRegionBox(box) && !regionBoxSet.has(box));
61
57
  const dependencies = audioUnitBoxes
62
- .flatMap(box => Array.from(box.graph.dependenciesOf(box, { excludeBox, alwaysFollowMandatory: true }).boxes))
63
- .filter(box => box.name !== SelectionBox.ClassName && box.name !== AuxSendBox.ClassName);
58
+ .flatMap(box => Array.from(box.graph.dependenciesOf(box, {
59
+ excludeBox,
60
+ alwaysFollowMandatory: true,
61
+ stopAtResources: true
62
+ }).boxes));
64
63
  const uuidMap = generateTransferMap(audioUnitBoxes, dependencies, rootBox.audioUnits.address.uuid, primaryAudioBus.address.uuid);
65
64
  copy(uuidMap, boxGraph, audioUnitBoxes, dependencies);
66
65
  reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox);
67
- // reorder track indices
68
66
  audioUnitBoxSet.forEach((_, trackBoxes) => [...trackBoxes]
69
67
  .sort(compareIndex)
70
68
  .forEach((source, index) => {
@@ -73,14 +71,13 @@ export var ProjectUtils;
73
71
  .unwrap("Target Track has not been copied");
74
72
  asInstanceOf(box, TrackBox).index.setValue(index);
75
73
  }));
76
- // move new regions to the target position
77
74
  const minPosition = regionBoxes.reduce((min, region) => Math.min(min, region.position.getValue()), Number.MAX_VALUE);
78
75
  const delta = insertPosition - minPosition;
79
76
  regionBoxes.forEach((source) => {
80
77
  const box = boxGraph
81
78
  .findBox(uuidMap.get(source.address.uuid).target)
82
79
  .unwrap("Target Track has not been copied");
83
- const position = UnionBoxTypes.asRegionBox(box).position;
80
+ const { position } = UnionBoxTypes.asRegionBox(box);
84
81
  position.setValue(position.getValue() + delta);
85
82
  });
86
83
  };
@@ -104,25 +101,30 @@ export var ProjectUtils;
104
101
  target: UUID.generate()
105
102
  })),
106
103
  ...dependencies
107
- .map(({ address: { uuid }, name }) => ({
108
- source: uuid,
109
- target: name === AudioFileBox.ClassName || name === SoundfontFileBox.ClassName
110
- ? uuid
111
- : UUID.generate()
104
+ .map(box => ({
105
+ source: box.address.uuid,
106
+ target: box.resource === "external" ? box.address.uuid : UUID.generate()
112
107
  }))
113
108
  ]);
114
109
  return uuidMap;
115
110
  };
116
111
  const copy = (uuidMap, boxGraph, audioUnitBoxes, dependencies) => {
117
- // First, identify which file boxes already exist and should be skipped
118
- const existingFileBoxUUIDs = UUID.newSet(uuid => uuid);
112
+ const existingExternalResourceUUIDs = UUID.newSet(uuid => uuid);
119
113
  dependencies.forEach((source) => {
120
- if (source instanceof AudioFileBox || source instanceof SoundfontFileBox) {
121
- if (boxGraph.findBox(source.address.uuid).nonEmpty()) {
122
- existingFileBoxUUIDs.add(source.address.uuid);
123
- }
114
+ if (source.resource === "external" && boxGraph.findBox(source.address.uuid).nonEmpty()) {
115
+ existingExternalResourceUUIDs.add(source.address.uuid);
124
116
  }
125
117
  });
118
+ const isOwnedByExistingExternalResource = (box) => {
119
+ for (const [pointer, targetAddress] of box.outgoingEdges()) {
120
+ if (pointer.mandatory && !targetAddress.isBox()) {
121
+ if (existingExternalResourceUUIDs.hasKey(targetAddress.uuid)) {
122
+ return true;
123
+ }
124
+ }
125
+ }
126
+ return false;
127
+ };
126
128
  PointerField.decodeWith({
127
129
  map: (_pointer, newAddress) => newAddress.map(address => uuidMap.opt(address.uuid).match({
128
130
  none: () => address,
@@ -138,18 +140,11 @@ export var ProjectUtils;
138
140
  });
139
141
  dependencies
140
142
  .forEach((source) => {
141
- if (source instanceof AudioFileBox || source instanceof SoundfontFileBox) {
142
- // Those boxes keep their UUID. So if they are already in the graph, skip them.
143
- if (existingFileBoxUUIDs.opt(source.address.uuid).nonEmpty()) {
144
- return;
145
- }
143
+ if (existingExternalResourceUUIDs.hasKey(source.address.uuid)) {
144
+ return;
146
145
  }
147
- // Skip TransientMarkerBox if its owner AudioFileBox already exists
148
- if (source instanceof TransientMarkerBox) {
149
- const ownerUUID = source.owner.targetAddress.unwrap().uuid;
150
- if (existingFileBoxUUIDs.opt(ownerUUID).nonEmpty()) {
151
- return;
152
- }
146
+ if (isOwnedByExistingExternalResource(source)) {
147
+ return;
153
148
  }
154
149
  const input = new ByteArrayInput(source.toArrayBuffer());
155
150
  const key = source.name;
@@ -23,6 +23,7 @@ export interface EngineToClient {
23
23
  error(reason: unknown): void;
24
24
  fetchAudio(uuid: UUID.Bytes): Promise<AudioData>;
25
25
  fetchSoundfont(uuid: UUID.Bytes): Promise<SoundFont2>;
26
+ fetchNamWasm(): Promise<ArrayBuffer>;
26
27
  notifyClipSequenceChanges(changes: ClipSequencingUpdates): void;
27
28
  switchMarkerState(state: Nullable<[UUID.Bytes, int]>): void;
28
29
  ready(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
1
+ {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC3D,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpC,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
@@ -45,10 +45,9 @@ export interface LoopableRegionBoxAdapter<CONTENT> extends RegionBoxAdapter<CONT
45
45
  get offset(): ppqn;
46
46
  get loopOffset(): ppqn;
47
47
  get loopDuration(): ppqn;
48
- /** Resolve loopOffset at a given position (for preview during drag operations) */
49
- resolveLoopOffset(position: ppqn): ppqn;
50
- /** Resolve loopDuration at a given position (for preview during drag operations) */
48
+ set loopDuration(value: ppqn);
51
49
  resolveLoopDuration(position: ppqn): ppqn;
50
+ moveContentStart(delta: ppqn): void;
52
51
  }
53
52
  export declare const RegionComparator: Comparator<AnyRegionBoxAdapter>;
54
53
  export declare const RegionAdapters: {