@opendaw/studio-adapters 0.0.69 → 0.0.70

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 (97) hide show
  1. package/dist/AutomatableParameterFieldAdapter.js +2 -2
  2. package/dist/DeviceAdapter.d.ts +7 -6
  3. package/dist/DeviceAdapter.d.ts.map +1 -1
  4. package/dist/DeviceAdapter.js +1 -1
  5. package/dist/DeviceBox.d.ts +1 -1
  6. package/dist/DeviceBox.js +1 -1
  7. package/dist/LabeledAudioOutputsOwner.d.ts +11 -0
  8. package/dist/LabeledAudioOutputsOwner.d.ts.map +1 -0
  9. package/dist/LabeledAudioOutputsOwner.js +1 -0
  10. package/dist/NoteSignal.d.ts +11 -1
  11. package/dist/NoteSignal.d.ts.map +1 -1
  12. package/dist/NoteSignal.js +2 -0
  13. package/dist/RootBoxAdapter.d.ts +3 -1
  14. package/dist/RootBoxAdapter.d.ts.map +1 -1
  15. package/dist/RootBoxAdapter.js +10 -1
  16. package/dist/audio-unit/AudioBusBoxAdapter.d.ts +3 -1
  17. package/dist/audio-unit/AudioBusBoxAdapter.d.ts.map +1 -1
  18. package/dist/audio-unit/AudioBusBoxAdapter.js +4 -0
  19. package/dist/audio-unit/AudioUnitBoxAdapter.d.ts +4 -2
  20. package/dist/audio-unit/AudioUnitBoxAdapter.d.ts.map +1 -1
  21. package/dist/audio-unit/AudioUnitBoxAdapter.js +16 -2
  22. package/dist/devices/audio-effects/CompressorDeviceBoxAdapter.d.ts +3 -0
  23. package/dist/devices/audio-effects/CompressorDeviceBoxAdapter.d.ts.map +1 -1
  24. package/dist/devices/audio-effects/CompressorDeviceBoxAdapter.js +8 -2
  25. package/dist/devices/audio-effects/CrusherDeviceBoxAdapter.d.ts +2 -0
  26. package/dist/devices/audio-effects/CrusherDeviceBoxAdapter.d.ts.map +1 -1
  27. package/dist/devices/audio-effects/CrusherDeviceBoxAdapter.js +7 -2
  28. package/dist/devices/audio-effects/DattorroReverbDeviceBoxAdapter.d.ts +2 -0
  29. package/dist/devices/audio-effects/DattorroReverbDeviceBoxAdapter.d.ts.map +1 -1
  30. package/dist/devices/audio-effects/DattorroReverbDeviceBoxAdapter.js +7 -2
  31. package/dist/devices/audio-effects/DelayDeviceBoxAdapter.d.ts +2 -0
  32. package/dist/devices/audio-effects/DelayDeviceBoxAdapter.d.ts.map +1 -1
  33. package/dist/devices/audio-effects/DelayDeviceBoxAdapter.js +7 -2
  34. package/dist/devices/audio-effects/FoldDeviceBoxAdapter.d.ts +2 -0
  35. package/dist/devices/audio-effects/FoldDeviceBoxAdapter.d.ts.map +1 -1
  36. package/dist/devices/audio-effects/FoldDeviceBoxAdapter.js +7 -2
  37. package/dist/devices/audio-effects/ModularDeviceBoxAdapter.d.ts +2 -0
  38. package/dist/devices/audio-effects/ModularDeviceBoxAdapter.d.ts.map +1 -1
  39. package/dist/devices/audio-effects/ModularDeviceBoxAdapter.js +4 -1
  40. package/dist/devices/audio-effects/RevampDeviceBoxAdapter.d.ts +2 -0
  41. package/dist/devices/audio-effects/RevampDeviceBoxAdapter.d.ts.map +1 -1
  42. package/dist/devices/audio-effects/RevampDeviceBoxAdapter.js +7 -2
  43. package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.d.ts +2 -0
  44. package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.d.ts.map +1 -1
  45. package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.js +7 -2
  46. package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.d.ts +2 -0
  47. package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.d.ts.map +1 -1
  48. package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.js +7 -2
  49. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts +2 -0
  50. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.d.ts.map +1 -1
  51. package/dist/devices/audio-effects/TidalDeviceBoxAdapter.js +7 -2
  52. package/dist/devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter.d.ts +2 -0
  53. package/dist/devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter.d.ts.map +1 -1
  54. package/dist/devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter.js +4 -0
  55. package/dist/devices/instruments/MIDIOutputDeviceBoxAdapter.d.ts +2 -0
  56. package/dist/devices/instruments/MIDIOutputDeviceBoxAdapter.d.ts.map +1 -1
  57. package/dist/devices/instruments/MIDIOutputDeviceBoxAdapter.js +4 -1
  58. package/dist/devices/instruments/NanoDeviceBoxAdapter.d.ts +2 -0
  59. package/dist/devices/instruments/NanoDeviceBoxAdapter.d.ts.map +1 -1
  60. package/dist/devices/instruments/NanoDeviceBoxAdapter.js +7 -2
  61. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts +5 -2
  62. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts.map +1 -1
  63. package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +12 -1
  64. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts +3 -1
  65. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts.map +1 -1
  66. package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.js +18 -1
  67. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.d.ts +2 -0
  68. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.d.ts.map +1 -1
  69. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.js +4 -1
  70. package/dist/devices/instruments/TapeDeviceBoxAdapter.d.ts +2 -0
  71. package/dist/devices/instruments/TapeDeviceBoxAdapter.d.ts.map +1 -1
  72. package/dist/devices/instruments/TapeDeviceBoxAdapter.js +7 -2
  73. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts +2 -0
  74. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts.map +1 -1
  75. package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.js +7 -2
  76. package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.d.ts +1 -1
  77. package/dist/devices/midi-effects/PitchDeviceBoxAdapter.d.ts +1 -1
  78. package/dist/devices/midi-effects/UnknownMidiEffectDeviceBoxAdapter.d.ts +1 -1
  79. package/dist/devices/midi-effects/VelocityDeviceBoxAdapter.d.ts +1 -1
  80. package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.d.ts +1 -1
  81. package/dist/editing/UserEditing.js +1 -1
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +1 -0
  85. package/dist/preset/PresetDecoder.d.ts.map +1 -1
  86. package/dist/preset/PresetDecoder.js +20 -9
  87. package/dist/project/ProjectSkeleton.js +1 -1
  88. package/dist/project/ProjectUtils.d.ts.map +1 -1
  89. package/dist/project/ProjectUtils.js +37 -8
  90. package/dist/selection/VertexSelection.d.ts +2 -1
  91. package/dist/selection/VertexSelection.d.ts.map +1 -1
  92. package/dist/selection/VertexSelection.js +1 -0
  93. package/dist/timeline/RegionEditing.d.ts.map +1 -1
  94. package/dist/timeline/RegionEditing.js +1 -0
  95. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
  96. package/dist/timeline/region/AudioRegionBoxAdapter.js +2 -6
  97. package/package.json +8 -8
@@ -16,7 +16,7 @@ import { TrackBoxAdapter } from "./timeline/TrackBoxAdapter";
16
16
  const ExternalControlTypes = [
17
17
  Pointers.Automation,
18
18
  Pointers.Modulation,
19
- Pointers.MidiControl,
19
+ Pointers.MIDIControl,
20
20
  Pointers.ParameterController
21
21
  ];
22
22
  export class AutomatableParameterFieldAdapter {
@@ -166,7 +166,7 @@ const mapPointerToControlSource = (pointer) => {
166
166
  return "automated";
167
167
  case Pointers.Modulation:
168
168
  return "modulated";
169
- case Pointers.MidiControl:
169
+ case Pointers.MIDIControl:
170
170
  return "midi";
171
171
  case Pointers.ParameterController:
172
172
  return "external";
@@ -6,20 +6,21 @@ import { IndexedBoxAdapterCollection } from "./IndexedBoxAdapterCollection";
6
6
  import { BoxAdapter } from "./BoxAdapter";
7
7
  import { AudioUnitInputAdapter } from "./audio-unit/AudioUnitInputAdapter";
8
8
  import { AudioUnitBoxAdapter } from "./audio-unit/AudioUnitBoxAdapter";
9
+ import { LabeledAudioOutputsOwner } from "./LabeledAudioOutputsOwner";
9
10
  export type DeviceType = "midi-effect" | "bus" | "instrument" | "audio-effect";
10
11
  export type DeviceAccepts = "midi" | "audio" | false;
11
12
  export declare namespace DeviceAccepts {
12
13
  const toTrackType: (type: DeviceAccepts) => TrackType.Notes | TrackType.Audio;
13
14
  }
14
- export interface MidiEffectDeviceAdapter extends EffectDeviceBoxAdapter<Pointers.MidiEffectHost> {
15
+ export interface MidiEffectDeviceAdapter extends EffectDeviceBoxAdapter<Pointers.MIDIEffectHost> {
15
16
  readonly type: "midi-effect";
16
17
  readonly accepts: "midi";
17
18
  }
18
- export interface AudioEffectDeviceAdapter extends EffectDeviceBoxAdapter<Pointers.AudioEffectHost> {
19
+ export interface AudioEffectDeviceAdapter extends EffectDeviceBoxAdapter<Pointers.AudioEffectHost>, LabeledAudioOutputsOwner {
19
20
  readonly type: "audio-effect";
20
21
  readonly accepts: "audio";
21
22
  }
22
- export type EffectPointerType = Pointers.AudioEffectHost | Pointers.MidiEffectHost;
23
+ export type EffectPointerType = Pointers.AudioEffectHost | Pointers.MIDIEffectHost;
23
24
  export interface EffectDeviceBoxAdapter<P extends EffectPointerType = EffectPointerType> extends DeviceBoxAdapter {
24
25
  readonly type: "audio-effect" | "midi-effect";
25
26
  readonly accepts: "audio" | "midi";
@@ -27,15 +28,15 @@ export interface EffectDeviceBoxAdapter<P extends EffectPointerType = EffectPoin
27
28
  get enabledField(): BooleanField;
28
29
  get host(): PointerField<P>;
29
30
  }
30
- export interface InstrumentDeviceBoxAdapter extends DeviceBoxAdapter {
31
+ export interface InstrumentDeviceBoxAdapter extends DeviceBoxAdapter, LabeledAudioOutputsOwner {
31
32
  readonly type: "instrument";
32
33
  get iconField(): StringField;
33
34
  get defaultTrackType(): TrackType;
34
35
  get acceptsMidiEvents(): boolean;
35
36
  }
36
- export interface DeviceHost extends BoxAdapter {
37
+ export interface DeviceHost extends BoxAdapter, LabeledAudioOutputsOwner {
37
38
  readonly class: "device-host";
38
- get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MidiEffectHost>;
39
+ get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MIDIEffectHost>;
39
40
  get inputAdapter(): Option<AudioUnitInputAdapter>;
40
41
  get audioEffects(): IndexedBoxAdapterCollection<AudioEffectDeviceAdapter, Pointers.AudioEffectHost>;
41
42
  get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
@@ -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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"}
@@ -35,7 +35,7 @@ export var Devices;
35
35
  const targets = device.accepts === "audio"
36
36
  ? device.deviceHost().audioEffects.field().pointerHub.filter(Pointers.AudioEffectHost)
37
37
  : device.accepts === "midi"
38
- ? device.deviceHost().midiEffects.field().pointerHub.filter(Pointers.MidiEffectHost)
38
+ ? device.deviceHost().midiEffects.field().pointerHub.filter(Pointers.MIDIEffectHost)
39
39
  : panic("unknown type");
40
40
  targets.map(({ box }) => DeviceBoxUtils.lookupIndexField(box))
41
41
  .filter(index => devices.some(device => UUID.Comparator(device.uuid, index.address.uuid) !== 0))
@@ -11,7 +11,7 @@ export type InstrumentDeviceBox = {
11
11
  host: PointerField<Pointers.InstrumentHost>;
12
12
  } & DeviceBox;
13
13
  export type EffectDeviceBox = {
14
- host: PointerField<Pointers.AudioEffectHost | Pointers.MidiEffectHost>;
14
+ host: PointerField<Pointers.AudioEffectHost | Pointers.MIDIEffectHost>;
15
15
  index: Int32Field;
16
16
  } & DeviceBox;
17
17
  export declare namespace DeviceBoxUtils {
package/dist/DeviceBox.js CHANGED
@@ -9,7 +9,7 @@ export var DeviceBoxUtils;
9
9
  "minimized" in box && isInstanceOf(box.minimized, BooleanField);
10
10
  DeviceBoxUtils.isInstrumentDeviceBox = (box) => DeviceBoxUtils.isDeviceBox(box) && box.host.pointerType === Pointers.InstrumentHost;
11
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);
12
+ (box.host.pointerType === Pointers.MIDIEffectHost || box.host.pointerType === Pointers.AudioEffectHost);
13
13
  DeviceBoxUtils.lookupHostField = (box) => isDefined(box) && "host" in box && isInstanceOf(box.host, PointerField)
14
14
  ? box.host : panic(`Could not find 'host' field in '${box?.name}'`);
15
15
  DeviceBoxUtils.lookupLabelField = (box) => isDefined(box) && "label" in box && isInstanceOf(box.label, StringField)
@@ -0,0 +1,11 @@
1
+ import { Address } from "@opendaw/lib-box";
2
+ import { Option, Provider } from "@opendaw/lib-std";
3
+ export type LabeledAudioOutput = {
4
+ readonly address: Address;
5
+ readonly label: string;
6
+ readonly children: Provider<Option<Iterable<LabeledAudioOutput>>>;
7
+ };
8
+ export interface LabeledAudioOutputsOwner {
9
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
10
+ }
11
+ //# sourceMappingURL=LabeledAudioOutputsOwner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabeledAudioOutputsOwner.d.ts","sourceRoot":"","sources":["../src/LabeledAudioOutputsOwner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;CACpE,CAAA;AAED,MAAM,WAAW,wBAAwB;IACrC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAA;CACtD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { byte, unitValue, UUID } from "@opendaw/lib-std";
2
+ import { ppqn } from "@opendaw/lib-dsp";
2
3
  export type NoteSignalOn = {
3
4
  type: "note-on";
4
5
  uuid: UUID.Bytes;
@@ -10,12 +11,21 @@ export type NoteSignalOff = {
10
11
  uuid: UUID.Bytes;
11
12
  pitch: byte;
12
13
  };
13
- export type NoteSignal = NoteSignalOn | NoteSignalOff;
14
+ export type NoteSignalAudition = {
15
+ type: "note-audition";
16
+ uuid: UUID.Bytes;
17
+ duration: ppqn;
18
+ pitch: byte;
19
+ velocity: unitValue;
20
+ };
21
+ export type NoteSignal = NoteSignalOn | NoteSignalOff | NoteSignalAudition;
14
22
  export declare namespace NoteSignal {
15
23
  const on: (uuid: UUID.Bytes, pitch: byte, velocity: unitValue) => NoteSignalOn;
16
24
  const off: (uuid: UUID.Bytes, pitch: byte) => NoteSignalOff;
25
+ const audition: (uuid: UUID.Bytes, pitch: byte, duration: ppqn, velocity: unitValue) => NoteSignalAudition;
17
26
  const isOn: (signal: NoteSignal) => signal is NoteSignalOn;
18
27
  const isOff: (signal: NoteSignal) => signal is NoteSignalOff;
28
+ const isAudition: (signal: NoteSignal) => signal is NoteSignalAudition;
19
29
  const fromEvent: (event: MIDIMessageEvent, uuid: UUID.Bytes) => NoteSignal;
20
30
  }
21
31
  //# sourceMappingURL=NoteSignal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoteSignal.d.ts","sourceRoot":"","sources":["../src/NoteSignal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAG7D,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAA;AAElG,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;AAErD,yBAAiB,UAAU,CAAC;IACjB,MAAM,EAAE,GAAI,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,UAAU,SAAS,KAAG,YAC1B,CAAA;IACvC,MAAM,GAAG,GAAI,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAG,aACf,CAAA;IAE9B,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,MAAM,IAAI,YAAyC,CAAA;IACtF,MAAM,KAAK,GAAI,QAAQ,UAAU,KAAG,MAAM,IAAI,aAA2C,CAAA;IAEzF,MAAM,SAAS,GAAI,OAAO,gBAAgB,EAAE,MAAM,IAAI,CAAC,KAAK,KAAG,UAWrE,CAAA;CACJ"}
1
+ {"version":3,"file":"NoteSignal.d.ts","sourceRoot":"","sources":["../src/NoteSignal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAA;AAElG,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,kBAAkB,CAAA;AAE1E,yBAAiB,UAAU,CAAC;IACjB,MAAM,EAAE,GAAI,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,UAAU,SAAS,KAAG,YAC1B,CAAA;IACvC,MAAM,GAAG,GAAI,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAG,aACf,CAAA;IAC9B,MAAM,QAAQ,GAAI,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,UAAU,SAAS,KAAG,kBAChC,CAAA;IAEvD,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,MAAM,IAAI,YAAyC,CAAA;IACtF,MAAM,KAAK,GAAI,QAAQ,UAAU,KAAG,MAAM,IAAI,aAA2C,CAAA;IACzF,MAAM,UAAU,GAAI,QAAQ,UAAU,KAAG,MAAM,IAAI,kBAAqD,CAAA;IAExG,MAAM,SAAS,GAAI,OAAO,gBAAgB,EAAE,MAAM,IAAI,CAAC,KAAK,KAAG,UAWrE,CAAA;CACJ"}
@@ -4,8 +4,10 @@ export var NoteSignal;
4
4
  (function (NoteSignal) {
5
5
  NoteSignal.on = (uuid, pitch, velocity) => ({ type: "note-on", uuid, pitch, velocity });
6
6
  NoteSignal.off = (uuid, pitch) => ({ type: "note-off", uuid, pitch });
7
+ NoteSignal.audition = (uuid, pitch, duration, velocity) => ({ type: "note-audition", uuid, pitch, duration, velocity });
7
8
  NoteSignal.isOn = (signal) => signal.type === "note-on";
8
9
  NoteSignal.isOff = (signal) => signal.type === "note-off";
10
+ NoteSignal.isAudition = (signal) => signal.type === "note-audition";
9
11
  NoteSignal.fromEvent = (event, uuid) => {
10
12
  const data = event.data;
11
13
  if (MidiData.isNoteOn(data)) {
@@ -12,7 +12,8 @@ import { BoxAdapter } from "./BoxAdapter";
12
12
  import { TimelineBoxAdapter } from "./timeline/TimelineBoxAdapter";
13
13
  import { GrooveShuffleBoxAdapter } from "./grooves/GrooveShuffleBoxAdapter";
14
14
  import { PianoModeAdapter } from "./PianoModeAdapter";
15
- export declare class RootBoxAdapter implements BoxAdapter {
15
+ import { LabeledAudioOutput, LabeledAudioOutputsOwner } from "./LabeledAudioOutputsOwner";
16
+ export declare class RootBoxAdapter implements BoxAdapter, LabeledAudioOutputsOwner {
16
17
  #private;
17
18
  constructor(context: BoxAdaptersContext, box: RootBox);
18
19
  get uuid(): UUID.Bytes;
@@ -26,6 +27,7 @@ export declare class RootBoxAdapter implements BoxAdapter {
26
27
  get pianoMode(): PianoModeAdapter;
27
28
  get created(): Date;
28
29
  get midiOutputDevices(): ReadonlyArray<MIDIOutputBox>;
30
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
29
31
  terminate(): void;
30
32
  }
31
33
  //# sourceMappingURL=RootBoxAdapter.d.ts.map
@@ -1 +1 @@
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
+ {"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,EAAuB,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC3D,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;AACnD,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,4BAA4B,CAAA;AAEvF,qBAAa,cAAe,YAAW,UAAU,EAAE,wBAAwB;;gBAQ3D,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;IAEC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAUrD,SAAS,IAAI,IAAI;CACpB"}
@@ -11,7 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _RootBoxAdapter_context, _RootBoxAdapter_box, _RootBoxAdapter_audioUnits, _RootBoxAdapter_audioBusses, _RootBoxAdapter_pianoMode;
13
13
  import { MIDIOutputBox } from "@opendaw/studio-boxes";
14
- import { asInstanceOf } from "@opendaw/lib-std";
14
+ import { asInstanceOf, Option } from "@opendaw/lib-std";
15
15
  import { AudioBusBoxAdapter } from "./audio-unit/AudioBusBoxAdapter";
16
16
  import { Pointers } from "@opendaw/studio-enums";
17
17
  import { IndexedBoxAdapterCollection } from "./IndexedBoxAdapterCollection";
@@ -56,6 +56,15 @@ export class RootBoxAdapter {
56
56
  get midiOutputDevices() {
57
57
  return __classPrivateFieldGet(this, _RootBoxAdapter_box, "f").outputMidiDevices.pointerHub.incoming().map(({ box }) => asInstanceOf(box, MIDIOutputBox));
58
58
  }
59
+ *labeledAudioOutputs() {
60
+ for (const audioUnit of __classPrivateFieldGet(this, _RootBoxAdapter_audioUnits, "f").adapters()) {
61
+ yield {
62
+ label: audioUnit.label,
63
+ address: audioUnit.address,
64
+ children: () => Option.wrap(audioUnit.labeledAudioOutputs())
65
+ };
66
+ }
67
+ }
59
68
  terminate() { __classPrivateFieldGet(this, _RootBoxAdapter_audioUnits, "f").terminate(); }
60
69
  }
61
70
  _RootBoxAdapter_context = new WeakMap(), _RootBoxAdapter_box = new WeakMap(), _RootBoxAdapter_audioUnits = new WeakMap(), _RootBoxAdapter_audioBusses = new WeakMap(), _RootBoxAdapter_pianoMode = new WeakMap();
@@ -2,10 +2,11 @@ import { Address, BooleanField, StringField } from "@opendaw/lib-box";
2
2
  import { Observer, Subscription, UUID } from "@opendaw/lib-std";
3
3
  import { AudioBusBox } from "@opendaw/studio-boxes";
4
4
  import { DeviceBoxAdapter, DeviceHost } from "../DeviceAdapter";
5
+ import { LabeledAudioOutput, LabeledAudioOutputsOwner } from "../LabeledAudioOutputsOwner";
5
6
  import { BoxAdaptersContext } from "../BoxAdaptersContext";
6
7
  import { AudioUnitBoxAdapter } from "./AudioUnitBoxAdapter";
7
8
  import { IconSymbol } from "@opendaw/studio-enums";
8
- export declare class AudioBusBoxAdapter implements DeviceBoxAdapter {
9
+ export declare class AudioBusBoxAdapter implements DeviceBoxAdapter, LabeledAudioOutputsOwner {
9
10
  #private;
10
11
  readonly type = "bus";
11
12
  readonly accepts = "audio";
@@ -22,6 +23,7 @@ export declare class AudioBusBoxAdapter implements DeviceBoxAdapter {
22
23
  get iconSymbol(): IconSymbol;
23
24
  deviceHost(): DeviceHost;
24
25
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
26
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
25
27
  terminate(): void;
26
28
  toString(): string;
27
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AudioBusBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioBusBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAe,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAU,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAEhD,qBAAa,kBAAmB,YAAW,gBAAgB;;IACvD,QAAQ,CAAC,IAAI,SAAQ;IACrB,QAAQ,CAAC,OAAO,WAAU;gBAKd,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW;IAKzD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAK3D,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,GAAG,IAAI,WAAW,CAAmB;IACzC,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,UAAU,CAAuE;IAEnG,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;IAEjB,QAAQ,IAAI,MAAM;CACrB"}
1
+ {"version":3,"file":"AudioBusBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioBusBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAe,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAC,QAAQ,EAAU,YAAY,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAU,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,6BAA6B,CAAA;AACxF,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAEhD,qBAAa,kBAAmB,YAAW,gBAAgB,EAAE,wBAAwB;;IACjF,QAAQ,CAAC,IAAI,SAAQ;IACrB,QAAQ,CAAC,OAAO,WAAU;gBAKd,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW;IAKzD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAK3D,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,GAAG,IAAI,WAAW,CAAmB;IACzC,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,UAAU,IAAI,UAAU,CAAuE;IAEnG,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;IAEjB,QAAQ,IAAI,MAAM;CACrB"}
@@ -11,6 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _AudioBusBoxAdapter_context, _AudioBusBoxAdapter_box;
13
13
  import { Propagation } from "@opendaw/lib-box";
14
+ import { Option } from "@opendaw/lib-std";
14
15
  import { Devices } from "../DeviceAdapter";
15
16
  import { IconSymbol } from "@opendaw/studio-enums";
16
17
  export class AudioBusBoxAdapter {
@@ -40,6 +41,9 @@ export class AudioBusBoxAdapter {
40
41
  .adapterFor(__classPrivateFieldGet(this, _AudioBusBoxAdapter_box, "f").output.targetVertex.unwrap("No AudioUnitBox found").box, Devices.isHost);
41
42
  }
42
43
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
44
+ *labeledAudioOutputs() {
45
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
46
+ }
43
47
  terminate() { }
44
48
  toString() { return `{${this.constructor.name}}`; }
45
49
  }
@@ -3,6 +3,7 @@ import { int, Option, UUID, ValueMapping } from "@opendaw/lib-std";
3
3
  import { Address, BooleanField, Field, Int32Field } from "@opendaw/lib-box";
4
4
  import { AudioUnitType, Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost, MidiEffectDeviceAdapter } from "../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../LabeledAudioOutputsOwner";
6
7
  import { AudioUnitTracks } from "./AudioUnitTracks";
7
8
  import { AudioUnitInput } from "./AudioUnitInput";
8
9
  import { IndexedBoxAdapterCollection } from "../IndexedBoxAdapterCollection";
@@ -31,7 +32,7 @@ export declare class AudioUnitBoxAdapter implements DeviceHost, BoxAdapter {
31
32
  get captureBox(): Option<CaptureAudioBox | CaptureMidiBox>;
32
33
  get tracks(): AudioUnitTracks;
33
34
  get input(): AudioUnitInput;
34
- get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MidiEffectHost>;
35
+ get midiEffects(): IndexedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MIDIEffectHost>;
35
36
  get audioEffects(): IndexedBoxAdapterCollection<AudioEffectDeviceAdapter, Pointers.AudioEffectHost>;
36
37
  get inputAdapter(): Option<AudioUnitInputAdapter>;
37
38
  get auxSends(): IndexedBoxAdapterCollection<AuxSendBoxAdapter, Pointers.AuxSend>;
@@ -39,7 +40,7 @@ export declare class AudioUnitBoxAdapter implements DeviceHost, BoxAdapter {
39
40
  get isBus(): boolean;
40
41
  get isInstrument(): boolean;
41
42
  get isOutput(): boolean;
42
- get midiEffectsField(): Field<Pointers.MidiEffectHost>;
43
+ get midiEffectsField(): Field<Pointers.MIDIEffectHost>;
43
44
  get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
44
45
  get audioEffectsField(): Field<Pointers.AudioEffectHost>;
45
46
  get tracksField(): Field<Pointers.TrackCollection>;
@@ -47,6 +48,7 @@ export declare class AudioUnitBoxAdapter implements DeviceHost, BoxAdapter {
47
48
  get isAudioUnit(): boolean;
48
49
  get label(): string;
49
50
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
51
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
50
52
  indicesLimit(): [int, int];
51
53
  move(delta: int): void;
52
54
  moveTrack(adapter: TrackBoxAdapter, delta: int): void;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _AudioUnitBoxAdapter_instances, _a, _AudioUnitBoxAdapter_terminator, _AudioUnitBoxAdapter_context, _AudioUnitBoxAdapter_box, _AudioUnitBoxAdapter_parametric, _AudioUnitBoxAdapter_tracks, _AudioUnitBoxAdapter_input, _AudioUnitBoxAdapter_midiEffects, _AudioUnitBoxAdapter_audioEffects, _AudioUnitBoxAdapter_auxSends, _AudioUnitBoxAdapter_output, _AudioUnitBoxAdapter_wrapParameters, _AudioUnitBoxAdapter_sanityCheck;
13
- import { assert, StringMapping, Terminator, ValueMapping } from "@opendaw/lib-std";
13
+ import { assert, Option, StringMapping, Terminator, ValueMapping } from "@opendaw/lib-std";
14
14
  import { AudioUnitType, Pointers } from "@opendaw/studio-enums";
15
15
  import { Devices } from "../DeviceAdapter";
16
16
  import { AudioUnitTracks } from "./AudioUnitTracks";
@@ -38,7 +38,7 @@ export class AudioUnitBoxAdapter {
38
38
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_parametric, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(new ParameterAdapterSet(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f"))), "f");
39
39
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_tracks, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(new AudioUnitTracks(this, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters)), "f");
40
40
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_input, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(new AudioUnitInput(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").input.pointerHub, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters)), "f");
41
- __classPrivateFieldSet(this, _AudioUnitBoxAdapter_midiEffects, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").midiEffects, box => __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters.adapterFor(box, Devices.isMidiEffect), Pointers.MidiEffectHost)), "f");
41
+ __classPrivateFieldSet(this, _AudioUnitBoxAdapter_midiEffects, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").midiEffects, box => __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters.adapterFor(box, Devices.isMidiEffect), Pointers.MIDIEffectHost)), "f");
42
42
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_audioEffects, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").audioEffects, box => __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters.adapterFor(box, Devices.isAudioEffect), Pointers.AudioEffectHost)), "f");
43
43
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_auxSends, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(IndexedBoxAdapterCollection.create(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").auxSends, box => __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters.adapterFor(box, AuxSendBoxAdapter), Pointers.AuxSend)), "f");
44
44
  __classPrivateFieldSet(this, _AudioUnitBoxAdapter_output, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_terminator, "f").own(new AudioUnitOutput(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").output, __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").boxAdapters)), "f");
@@ -71,6 +71,20 @@ export class AudioUnitBoxAdapter {
71
71
  get isAudioUnit() { return true; }
72
72
  get label() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_input, "f").getValue().mapOr(input => input.labelField.getValue(), ""); }
73
73
  audioUnitBoxAdapter() { return this; }
74
+ *labeledAudioOutputs() {
75
+ const optInput = this.input.getValue();
76
+ if (optInput.nonEmpty()) {
77
+ yield* optInput.unwrap().labeledAudioOutputs();
78
+ }
79
+ for (const effect of __classPrivateFieldGet(this, _AudioUnitBoxAdapter_audioEffects, "f").adapters()) {
80
+ yield* effect.labeledAudioOutputs();
81
+ }
82
+ yield {
83
+ address: this.address,
84
+ label: "Channelstrip",
85
+ children: () => Option.None
86
+ };
87
+ }
74
88
  indicesLimit() {
75
89
  const adapters = __classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").rootBoxAdapter.audioUnits.adapters();
76
90
  const startIndex = this.indexField.getValue();
@@ -3,6 +3,7 @@ import { UUID } from "@opendaw/lib-std";
3
3
  import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
4
4
  import { Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
7
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
8
  import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
8
9
  export declare class CompressorDeviceBoxAdapter implements AudioEffectDeviceAdapter {
@@ -32,8 +33,10 @@ export declare class CompressorDeviceBoxAdapter implements AudioEffectDeviceAdap
32
33
  get enabledField(): BooleanField;
33
34
  get minimizedField(): BooleanField;
34
35
  get host(): PointerField<Pointers.AudioEffectHost>;
36
+ get sideChain(): PointerField<Pointers.SideChain>;
35
37
  deviceHost(): DeviceHost;
36
38
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
39
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
37
40
  terminate(): void;
38
41
  }
39
42
  //# sourceMappingURL=CompressorDeviceBoxAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompressorDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/CompressorDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,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,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,0BAA2B,YAAW,wBAAwB;;IACvE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAOjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CAiCpB"}
1
+ {"version":3,"file":"CompressorDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/CompressorDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,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;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,0BAA2B,YAAW,wBAAwB;;IACvE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAOjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,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,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA6B;IAE9E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAmCpB"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _CompressorDeviceBoxAdapter_instances, _CompressorDeviceBoxAdapter_context, _CompressorDeviceBoxAdapter_box, _CompressorDeviceBoxAdapter_parametric, _CompressorDeviceBoxAdapter_wrapParameters;
13
- import { StringMapping, ValueMapping } from "@opendaw/lib-std";
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
14
  import { Devices } from "../../DeviceAdapter";
15
15
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
16
16
  export class CompressorDeviceBoxAdapter {
@@ -34,12 +34,18 @@ export class CompressorDeviceBoxAdapter {
34
34
  get enabledField() { return __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_box, "f").enabled; }
35
35
  get minimizedField() { return __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_box, "f").minimized; }
36
36
  get host() { return __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_box, "f").host; }
37
+ get sideChain() { return __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_box, "f").sideChain; }
37
38
  deviceHost() {
38
39
  return __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_context, "f").boxAdapters
39
40
  .adapterFor(__classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
40
41
  }
41
42
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
42
- terminate() { __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_parametric, "f").terminate(); }
43
+ *labeledAudioOutputs() {
44
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
45
+ }
46
+ terminate() {
47
+ __classPrivateFieldGet(this, _CompressorDeviceBoxAdapter_parametric, "f").terminate();
48
+ }
43
49
  }
44
50
  _CompressorDeviceBoxAdapter_context = new WeakMap(), _CompressorDeviceBoxAdapter_box = new WeakMap(), _CompressorDeviceBoxAdapter_parametric = new WeakMap(), _CompressorDeviceBoxAdapter_instances = new WeakSet(), _CompressorDeviceBoxAdapter_wrapParameters = function _CompressorDeviceBoxAdapter_wrapParameters(box) {
45
51
  return {
@@ -3,6 +3,7 @@ import { Address, BooleanField, Int32Field, PointerField, StringField } from "@o
3
3
  import { CrusherDeviceBox } from "@opendaw/studio-boxes";
4
4
  import { Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
7
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
8
  import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
8
9
  export declare class CrusherDeviceBoxAdapter implements AudioEffectDeviceAdapter {
@@ -26,6 +27,7 @@ export declare class CrusherDeviceBoxAdapter implements AudioEffectDeviceAdapter
26
27
  get host(): PointerField<Pointers.AudioEffectHost>;
27
28
  deviceHost(): DeviceHost;
28
29
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
30
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
29
31
  terminate(): void;
30
32
  }
31
33
  //# sourceMappingURL=CrusherDeviceBoxAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrusherDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/CrusherDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,uBAAwB,YAAW,wBAAwB;;IACpE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB;IAO9D,IAAI,GAAG,IAAI,gBAAgB,CAAmB;IAC9C,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CAsBpB"}
1
+ {"version":3,"file":"CrusherDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/CrusherDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,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,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AACtD,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;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,uBAAwB,YAAW,wBAAwB;;IACpE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB;IAO9D,IAAI,GAAG,IAAI,gBAAgB,CAAmB;IAC9C,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAwBpB"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _CrusherDeviceBoxAdapter_instances, _CrusherDeviceBoxAdapter_context, _CrusherDeviceBoxAdapter_box, _CrusherDeviceBoxAdapter_parametric, _CrusherDeviceBoxAdapter_wrapParameters;
13
- import { StringMapping, ValueMapping } from "@opendaw/lib-std";
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
14
  import { Devices } from "../../DeviceAdapter";
15
15
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
16
16
  export class CrusherDeviceBoxAdapter {
@@ -39,7 +39,12 @@ export class CrusherDeviceBoxAdapter {
39
39
  .adapterFor(__classPrivateFieldGet(this, _CrusherDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
40
40
  }
41
41
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
42
- terminate() { __classPrivateFieldGet(this, _CrusherDeviceBoxAdapter_parametric, "f").terminate(); }
42
+ *labeledAudioOutputs() {
43
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
44
+ }
45
+ terminate() {
46
+ __classPrivateFieldGet(this, _CrusherDeviceBoxAdapter_parametric, "f").terminate();
47
+ }
43
48
  }
44
49
  _CrusherDeviceBoxAdapter_context = new WeakMap(), _CrusherDeviceBoxAdapter_box = new WeakMap(), _CrusherDeviceBoxAdapter_parametric = new WeakMap(), _CrusherDeviceBoxAdapter_instances = new WeakSet(), _CrusherDeviceBoxAdapter_wrapParameters = function _CrusherDeviceBoxAdapter_wrapParameters(box) {
45
50
  return {
@@ -3,6 +3,7 @@ import { Address, BooleanField, Int32Field, PointerField, StringField } from "@o
3
3
  import { DattorroReverbDeviceBox } from "@opendaw/studio-boxes";
4
4
  import { Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
7
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
8
  import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
8
9
  export declare class DattorroReverbDeviceBoxAdapter implements AudioEffectDeviceAdapter {
@@ -34,6 +35,7 @@ export declare class DattorroReverbDeviceBoxAdapter implements AudioEffectDevice
34
35
  get host(): PointerField<Pointers.AudioEffectHost>;
35
36
  deviceHost(): DeviceHost;
36
37
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
38
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
37
39
  terminate(): void;
38
40
  }
39
41
  //# sourceMappingURL=DattorroReverbDeviceBoxAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DattorroReverbDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/DattorroReverbDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,uBAAuB,EAAC,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,8BAA+B,YAAW,wBAAwB;;IAC3E,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB;IAOrE,IAAI,GAAG,IAAI,uBAAuB,CAAmB;IACrD,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CAiEpB"}
1
+ {"version":3,"file":"DattorroReverbDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/DattorroReverbDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,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,uBAAuB,EAAC,MAAM,uBAAuB,CAAA;AAC7D,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;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,8BAA+B,YAAW,wBAAwB;;IAC3E,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB;IAOrE,IAAI,GAAG,IAAI,uBAAuB,CAAmB;IACrD,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAmEpB"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _DattorroReverbDeviceBoxAdapter_instances, _DattorroReverbDeviceBoxAdapter_context, _DattorroReverbDeviceBoxAdapter_box, _DattorroReverbDeviceBoxAdapter_parametric, _DattorroReverbDeviceBoxAdapter_wrapParameters;
13
- import { StringMapping, ValueMapping } from "@opendaw/lib-std";
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
14
  import { Devices } from "../../DeviceAdapter";
15
15
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
16
16
  export class DattorroReverbDeviceBoxAdapter {
@@ -39,7 +39,12 @@ export class DattorroReverbDeviceBoxAdapter {
39
39
  .adapterFor(__classPrivateFieldGet(this, _DattorroReverbDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
40
40
  }
41
41
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
42
- terminate() { __classPrivateFieldGet(this, _DattorroReverbDeviceBoxAdapter_parametric, "f").terminate(); }
42
+ *labeledAudioOutputs() {
43
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
44
+ }
45
+ terminate() {
46
+ __classPrivateFieldGet(this, _DattorroReverbDeviceBoxAdapter_parametric, "f").terminate();
47
+ }
43
48
  }
44
49
  _DattorroReverbDeviceBoxAdapter_context = new WeakMap(), _DattorroReverbDeviceBoxAdapter_box = new WeakMap(), _DattorroReverbDeviceBoxAdapter_parametric = new WeakMap(), _DattorroReverbDeviceBoxAdapter_instances = new WeakSet(), _DattorroReverbDeviceBoxAdapter_wrapParameters = function _DattorroReverbDeviceBoxAdapter_wrapParameters(box) {
45
50
  return {
@@ -3,6 +3,7 @@ import { StringMapping, UUID } from "@opendaw/lib-std";
3
3
  import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
4
4
  import { Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
7
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
8
  import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
8
9
  export declare class DelayDeviceBoxAdapter implements AudioEffectDeviceAdapter {
@@ -30,6 +31,7 @@ export declare class DelayDeviceBoxAdapter implements AudioEffectDeviceAdapter {
30
31
  get host(): PointerField<Pointers.AudioEffectHost>;
31
32
  deviceHost(): DeviceHost;
32
33
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
34
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
33
35
  terminate(): void;
34
36
  }
35
37
  //# sourceMappingURL=DelayDeviceBoxAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DelayDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/DelayDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,qBAAsB,YAAW,wBAAwB;;IAClE,MAAM,CAAC,eAAe,yCAME;IAExB,MAAM,CAAC,mBAAmB,wBAA+E;IAEzG,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,cAAc;IAO5D,IAAI,GAAG,IAAI,cAAc,CAAmB;IAC5C,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CA8BpB"}
1
+ {"version":3,"file":"DelayDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/DelayDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAS,aAAa,EAAE,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;AAE9C,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;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,qBAAsB,YAAW,wBAAwB;;IAClE,MAAM,CAAC,eAAe,yCAME;IAExB,MAAM,CAAC,mBAAmB,wBAA+E;IAEzG,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,cAAc;IAO5D,IAAI,GAAG,IAAI,cAAc,CAAmB;IAC5C,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;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAgCpB"}
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _DelayDeviceBoxAdapter_instances, _a, _DelayDeviceBoxAdapter_context, _DelayDeviceBoxAdapter_box, _DelayDeviceBoxAdapter_parametric, _DelayDeviceBoxAdapter_wrapParameters;
13
- import { StringMapping, ValueMapping } from "@opendaw/lib-std";
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
14
  import { Fraction } from "@opendaw/lib-dsp";
15
15
  import { Devices } from "../../DeviceAdapter";
16
16
  import { ParameterAdapterSet } from "../../ParameterAdapterSet";
@@ -40,7 +40,12 @@ export class DelayDeviceBoxAdapter {
40
40
  .adapterFor(__classPrivateFieldGet(this, _DelayDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
41
41
  }
42
42
  audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
43
- terminate() { __classPrivateFieldGet(this, _DelayDeviceBoxAdapter_parametric, "f").terminate(); }
43
+ *labeledAudioOutputs() {
44
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
45
+ }
46
+ terminate() {
47
+ __classPrivateFieldGet(this, _DelayDeviceBoxAdapter_parametric, "f").terminate();
48
+ }
44
49
  }
45
50
  _a = DelayDeviceBoxAdapter, _DelayDeviceBoxAdapter_context = new WeakMap(), _DelayDeviceBoxAdapter_box = new WeakMap(), _DelayDeviceBoxAdapter_parametric = new WeakMap(), _DelayDeviceBoxAdapter_instances = new WeakSet(), _DelayDeviceBoxAdapter_wrapParameters = function _DelayDeviceBoxAdapter_wrapParameters(box) {
46
51
  return {
@@ -3,6 +3,7 @@ import { Address, BooleanField, Int32Field, PointerField, StringField } from "@o
3
3
  import { FoldDeviceBox } from "@opendaw/studio-boxes";
4
4
  import { Pointers } from "@opendaw/studio-enums";
5
5
  import { AudioEffectDeviceAdapter, DeviceHost } from "../../DeviceAdapter";
6
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
7
  import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
8
  import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
8
9
  export declare class FoldDeviceBoxAdapter implements AudioEffectDeviceAdapter {
@@ -24,6 +25,7 @@ export declare class FoldDeviceBoxAdapter implements AudioEffectDeviceAdapter {
24
25
  get host(): PointerField<Pointers.AudioEffectHost>;
25
26
  deviceHost(): DeviceHost;
26
27
  audioUnitBoxAdapter(): AudioUnitBoxAdapter;
28
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
27
29
  terminate(): void;
28
30
  }
29
31
  //# sourceMappingURL=FoldDeviceBoxAdapter.d.ts.map