@opendaw/studio-adapters 0.0.47 → 0.0.48

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.
@@ -1,4 +1,4 @@
1
- import { RootBox } from "@opendaw/studio-boxes";
1
+ import { MIDIOutputBox, RootBox } from "@opendaw/studio-boxes";
2
2
  import { Address } from "@opendaw/lib-box";
3
3
  import { UUID } from "@opendaw/lib-std";
4
4
  import { AudioBusBoxAdapter } from "./audio-unit/AudioBusBoxAdapter";
@@ -25,6 +25,7 @@ export declare class RootBoxAdapter implements BoxAdapter {
25
25
  get timeline(): TimelineBoxAdapter;
26
26
  get pianoMode(): PianoModeAdapter;
27
27
  get created(): Date;
28
+ get midiOutputDevices(): ReadonlyArray<MIDIOutputBox>;
28
29
  terminate(): void;
29
30
  }
30
31
  //# sourceMappingURL=RootBoxAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RootBoxAdapter.d.ts","sourceRoot":"","sources":["../src/RootBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,qBAAa,cAAe,YAAW,UAAU;;gBAQjC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO;IAarD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,GAAG,IAAI,OAAO,CAAmB;IACrC,IAAI,WAAW,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAA2B;IACtF,IAAI,UAAU,IAAI,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACjH,IAAI,KAAK,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAI5C;IACD,IAAI,MAAM,IAAI,uBAAuB,CAGpC;IACD,IAAI,QAAQ,IAAI,kBAAkB,CAGjC;IACD,IAAI,SAAS,IAAI,gBAAgB,CAAyB;IAC1D,IAAI,OAAO,IAAI,IAAI,CAAgD;IAEnE,SAAS,IAAI,IAAI;CACpB"}
1
+ {"version":3,"file":"RootBoxAdapter.d.ts","sourceRoot":"","sources":["../src/RootBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAe,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,qBAAa,cAAe,YAAW,UAAU;;gBAQjC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO;IAarD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,GAAG,IAAI,OAAO,CAAmB;IACrC,IAAI,WAAW,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAA2B;IACtF,IAAI,UAAU,IAAI,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACjH,IAAI,KAAK,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAI5C;IACD,IAAI,MAAM,IAAI,uBAAuB,CAGpC;IACD,IAAI,QAAQ,IAAI,kBAAkB,CAGjC;IACD,IAAI,SAAS,IAAI,gBAAgB,CAAyB;IAC1D,IAAI,OAAO,IAAI,IAAI,CAAgD;IACnE,IAAI,iBAAiB,IAAI,aAAa,CAAC,aAAa,CAAC,CAEpD;IAED,SAAS,IAAI,IAAI;CACpB"}
@@ -1,3 +1,5 @@
1
+ import { MIDIOutputBox } from "@opendaw/studio-boxes";
2
+ import { asInstanceOf } from "@opendaw/lib-std";
1
3
  import { AudioBusBoxAdapter } from "./audio-unit/AudioBusBoxAdapter";
2
4
  import { Pointers } from "@opendaw/studio-enums";
3
5
  import { IndexedBoxAdapterCollection } from "./IndexedBoxAdapterCollection";
@@ -39,5 +41,8 @@ export class RootBoxAdapter {
39
41
  }
40
42
  get pianoMode() { return this.#pianoMode; }
41
43
  get created() { return new Date(this.#box.created.getValue()); }
44
+ get midiOutputDevices() {
45
+ return this.#box.outputMidiDevices.pointerHub.incoming().map(({ box }) => asInstanceOf(box, MIDIOutputBox));
46
+ }
42
47
  terminate() { this.#audioUnits.terminate(); }
43
48
  }
@@ -1,5 +1,5 @@
1
- import { UUID } from "@opendaw/lib-std";
2
- import { MIDIOutputDeviceBox } from "@opendaw/studio-boxes";
1
+ import { ObservableOption, UUID } from "@opendaw/lib-std";
2
+ import { MIDIOutputBox, MIDIOutputDeviceBox } from "@opendaw/studio-boxes";
3
3
  import { Address, BooleanField, StringField } from "@opendaw/lib-box";
4
4
  import { DeviceHost, InstrumentDeviceBoxAdapter } from "../../DeviceAdapter";
5
5
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
@@ -21,6 +21,7 @@ export declare class MIDIOutputDeviceBoxAdapter implements InstrumentDeviceBoxAd
21
21
  get minimizedField(): BooleanField;
22
22
  get acceptsMidiEvents(): boolean;
23
23
  get parameters(): ParameterAdapterSet;
24
+ get midiDevice(): ObservableOption<MIDIOutputBox>;
24
25
  deviceHost(): DeviceHost;
25
26
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
26
27
  terminate(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MIDIOutputDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/MIDIOutputDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC5F,OAAO,EAAC,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,0BAA2B,YAAW,0BAA0B;;IAGzE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;gBAOb,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAcjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,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,UAAU,IAAI,mBAAmB,CAA0B;IAE/D,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CACpB"}
1
+ {"version":3,"file":"MIDIOutputDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/MIDIOutputDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAGhB,IAAI,EAEP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,0BAA2B,YAAW,0BAA0B;;IAGzE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;gBAQb,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAqBjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,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,UAAU,IAAI,mBAAmB,CAA0B;IAC/D,IAAI,UAAU,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAA0B;IAE3E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CACpB"}
@@ -1,5 +1,5 @@
1
- import { asInstanceOf, StringMapping, Terminator, ValueMapping } from "@opendaw/lib-std";
2
- import { MIDIOutputParameterBox } from "@opendaw/studio-boxes";
1
+ import { asInstanceOf, MutableObservableOption, StringMapping, Terminator, ValueMapping } from "@opendaw/lib-std";
2
+ import { MIDIOutputBox, MIDIOutputParameterBox } from "@opendaw/studio-boxes";
3
3
  import { Devices } from "../../DeviceAdapter";
4
4
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
5
5
  import { TrackType } from "../../timeline/TrackType";
@@ -9,17 +9,22 @@ export class MIDIOutputDeviceBoxAdapter {
9
9
  accepts = "midi";
10
10
  #context;
11
11
  #box;
12
+ #midiDevice;
12
13
  #parametric;
13
14
  constructor(context, box) {
14
15
  this.#context = context;
15
16
  this.#box = box;
17
+ this.#midiDevice = new MutableObservableOption();
16
18
  this.#parametric = this.#terminator.own(new ParameterAdapterSet(this.#context));
17
- this.#terminator.own(box.parameters.pointerHub.catchupAndSubscribe({
19
+ this.#terminator.ownAll(box.parameters.pointerHub.catchupAndSubscribe({
18
20
  onAdded: (({ box }) => this.#parametric
19
21
  .createParameter(asInstanceOf(box, MIDIOutputParameterBox).value, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 1 }), "", 0.0)),
20
22
  onRemoved: (({ box }) => this.#parametric
21
23
  .removeParameter(asInstanceOf(box, MIDIOutputParameterBox).value.address))
22
- }));
24
+ }), this.#box.device.catchupAndSubscribe(({ targetVertex }) => targetVertex.match({
25
+ none: () => this.#midiDevice.clear(),
26
+ some: ({ box }) => this.#midiDevice.wrap(asInstanceOf(box, MIDIOutputBox))
27
+ })));
23
28
  }
24
29
  get box() { return this.#box; }
25
30
  get uuid() { return this.#box.address.uuid; }
@@ -31,6 +36,7 @@ export class MIDIOutputDeviceBoxAdapter {
31
36
  get minimizedField() { return this.#box.minimized; }
32
37
  get acceptsMidiEvents() { return true; }
33
38
  get parameters() { return this.#parametric; }
39
+ get midiDevice() { return this.#midiDevice; }
34
40
  deviceHost() {
35
41
  return this.#context.boxAdapters
36
42
  .adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.47",
3
+ "version": "0.0.48",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,17 +23,17 @@
23
23
  "test": "echo \"No tests to run\""
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-box": "^0.0.46",
27
- "@opendaw/lib-dsp": "^0.0.46",
28
- "@opendaw/lib-runtime": "^0.0.46",
29
- "@opendaw/lib-std": "^0.0.46",
30
- "@opendaw/studio-boxes": "^0.0.46",
31
- "@opendaw/studio-enums": "^0.0.37",
26
+ "@opendaw/lib-box": "^0.0.47",
27
+ "@opendaw/lib-dsp": "^0.0.47",
28
+ "@opendaw/lib-runtime": "^0.0.47",
29
+ "@opendaw/lib-std": "^0.0.47",
30
+ "@opendaw/studio-boxes": "^0.0.47",
31
+ "@opendaw/studio-enums": "^0.0.38",
32
32
  "soundfont2": "^0.5.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@opendaw/eslint-config": "^0.0.20",
36
36
  "@opendaw/typescript-config": "^0.0.20"
37
37
  },
38
- "gitHead": "4136230de6c35fe8db4bde5221010c5e86f7b11a"
38
+ "gitHead": "170753973524372d44b7f837ef9058c0ca1660ae"
39
39
  }