@opendaw/studio-adapters 0.0.21 → 0.0.23

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 +1 @@
1
- {"version":3,"file":"NoteBroadcaster.d.ts","sourceRoot":"","sources":["../src/NoteBroadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAkB,GAAG,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAE7E,qBAAa,eAAgB,YAAW,UAAU;;gBAOlC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO;IAUhE,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IACvB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAExB,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,SAAS,IAAI,IAAI;IAEjB,QAAQ,IAAI,MAAM;CACrB"}
1
+ {"version":3,"file":"NoteBroadcaster.d.ts","sourceRoot":"","sources":["../src/NoteBroadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAkB,GAAG,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAE7E,qBAAa,eAAgB,YAAW,UAAU;;gBAOlC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO;IAUhE,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAKvB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAMxB,KAAK,IAAI,IAAI;IACb,KAAK,IAAI,IAAI;IACb,SAAS,IAAI,IAAI;IACjB,QAAQ,IAAI,MAAM;CACrB"}
@@ -10,12 +10,16 @@ export class NoteBroadcaster {
10
10
  this.#bits = new Bits(128);
11
11
  this.#terminator.own(this.#broadcaster.broadcastIntegers(this.#address, new Int32Array(this.#bits.buffer), EmptyExec));
12
12
  }
13
- noteOn(note) { if (note >= 0 && note < 128) {
14
- this.#bits.setBit(note, true);
15
- } }
16
- noteOff(note) { if (note >= 0 && note < 128) {
17
- this.#bits.setBit(note, false);
18
- } }
13
+ noteOn(note) {
14
+ if (note >= 0 && note < 128) {
15
+ this.#bits.setBit(note, true);
16
+ }
17
+ }
18
+ noteOff(note) {
19
+ if (note >= 0 && note < 128) {
20
+ this.#bits.setBit(note, false);
21
+ }
22
+ }
19
23
  reset() { }
20
24
  clear() { this.#bits.clear(); }
21
25
  terminate() { this.#terminator.terminate(); }
@@ -0,0 +1,6 @@
1
+ import { byte, Procedure, Terminable, unitValue, UUID } from "@opendaw/lib-std";
2
+ import { NoteSignal } from "./NoteSignal";
3
+ export declare namespace NoteLifeCycle {
4
+ const start: (send: Procedure<NoteSignal>, uuid: UUID.Format, pitch: byte, velocity?: unitValue) => Terminable;
5
+ }
6
+ //# sourceMappingURL=NoteLifeCycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoteLifeCycle.d.ts","sourceRoot":"","sources":["../src/NoteLifeCycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,yBAAiB,aAAa,CAAC;IACpB,MAAM,KAAK,GAAI,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,WAAU,SAAe,KAAG,UAW9G,CAAA;CACJ"}
@@ -0,0 +1,16 @@
1
+ import { NoteSignal } from "./NoteSignal";
2
+ export var NoteLifeCycle;
3
+ (function (NoteLifeCycle) {
4
+ NoteLifeCycle.start = (send, uuid, pitch, velocity = 1.0) => {
5
+ let playing = true;
6
+ send(NoteSignal.on(uuid, pitch, velocity));
7
+ return {
8
+ terminate: () => {
9
+ if (playing) {
10
+ send(NoteSignal.off(uuid, pitch));
11
+ playing = false;
12
+ }
13
+ }
14
+ };
15
+ };
16
+ })(NoteLifeCycle || (NoteLifeCycle = {}));
@@ -0,0 +1,21 @@
1
+ import { byte, unitValue, UUID } from "@opendaw/lib-std";
2
+ export type NoteSignalOn = {
3
+ type: "note-on";
4
+ uuid: UUID.Format;
5
+ pitch: byte;
6
+ velocity: unitValue;
7
+ };
8
+ export type NoteSignalOff = {
9
+ type: "note-off";
10
+ uuid: UUID.Format;
11
+ pitch: byte;
12
+ };
13
+ export type NoteSignal = NoteSignalOn | NoteSignalOff;
14
+ export declare namespace NoteSignal {
15
+ const on: (uuid: UUID.Format, pitch: byte, velocity: unitValue) => NoteSignalOn;
16
+ const off: (uuid: UUID.Format, pitch: byte) => NoteSignalOff;
17
+ const isOn: (signal: NoteSignal) => signal is NoteSignalOn;
18
+ const isOff: (signal: NoteSignal) => signal is NoteSignalOff;
19
+ const fromEvent: (event: MIDIMessageEvent, uuid: UUID.Format) => NoteSignal;
20
+ }
21
+ //# sourceMappingURL=NoteSignal.d.ts.map
@@ -0,0 +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,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAA;AAEnG,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;AAErD,yBAAiB,UAAU,CAAC;IACjB,MAAM,EAAE,GAAI,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,UAAU,SAAS,KAAG,YAC3B,CAAA;IACvC,MAAM,GAAG,GAAI,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,KAAG,aAChB,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,MAAM,KAAG,UAWtE,CAAA;CACJ"}
@@ -0,0 +1,22 @@
1
+ import { panic } from "@opendaw/lib-std";
2
+ import { MidiData } from "@opendaw/lib-midi";
3
+ export var NoteSignal;
4
+ (function (NoteSignal) {
5
+ NoteSignal.on = (uuid, pitch, velocity) => ({ type: "note-on", uuid, pitch, velocity });
6
+ NoteSignal.off = (uuid, pitch) => ({ type: "note-off", uuid, pitch });
7
+ NoteSignal.isOn = (signal) => signal.type === "note-on";
8
+ NoteSignal.isOff = (signal) => signal.type === "note-off";
9
+ NoteSignal.fromEvent = (event, uuid) => {
10
+ const data = event.data;
11
+ if (MidiData.isNoteOn(data)) {
12
+ const pitch = MidiData.readPitch(data);
13
+ const velocity = MidiData.readVelocity(data);
14
+ return ({ type: "note-on", uuid, pitch, velocity });
15
+ }
16
+ else if (MidiData.isNoteOff(data)) {
17
+ const pitch = MidiData.readPitch(data);
18
+ return ({ type: "note-off", uuid, pitch });
19
+ }
20
+ return panic("Unknown MIDI event");
21
+ };
22
+ })(NoteSignal || (NoteSignal = {}));
@@ -41,7 +41,7 @@ export class VaporisateurDeviceBoxAdapter {
41
41
  resonance: this.#parametric.createParameter(box.resonance, ValueMapping.exponential(0.1, 20.0), StringMapping.numeric({ unit: "q", fractionDigits: 1 }), "resonance"),
42
42
  attack: this.#parametric.createParameter(box.attack, ValueMapping.exponential(0.001, 1.0), StringMapping.numeric({ unit: "s", fractionDigits: 3 }), "attack"),
43
43
  release: this.#parametric.createParameter(box.release, ValueMapping.exponential(0.001, 1.0), StringMapping.numeric({ unit: "s", fractionDigits: 3 }), "release"),
44
- filterEnvelope: this.#parametric.createParameter(box.filterEnvelope, ValueMapping.linear(-0.1, 0.1), StringMapping.percent(), "filter env", 0.5)
44
+ filterEnvelope: this.#parametric.createParameter(box.filterEnvelope, ValueMapping.linear(-0.5, 0.5), StringMapping.percent(), "filter env", 0.5)
45
45
  };
46
46
  }
47
47
  }
package/dist/index.d.ts CHANGED
@@ -16,7 +16,8 @@ export * from "./IndexComparator";
16
16
  export * from "./IndexedBoxAdapterCollection";
17
17
  export * from "./ManadatoryBoxes";
18
18
  export * from "./NoteBroadcaster";
19
- export * from "./NoteSender";
19
+ export * from "./NoteLifeCycle";
20
+ export * from "./NoteSignal";
20
21
  export * from "./NoteStreamReceiver";
21
22
  export * from "./ParameterAdapterSet";
22
23
  export * from "./ParameterFieldAdapters";
@@ -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":"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"}
package/dist/index.js CHANGED
@@ -18,7 +18,8 @@ export * from "./IndexComparator";
18
18
  export * from "./IndexedBoxAdapterCollection";
19
19
  export * from "./ManadatoryBoxes";
20
20
  export * from "./NoteBroadcaster";
21
- export * from "./NoteSender";
21
+ export * from "./NoteLifeCycle";
22
+ export * from "./NoteSignal";
22
23
  export * from "./NoteStreamReceiver";
23
24
  export * from "./ParameterAdapterSet";
24
25
  export * from "./ParameterFieldAdapters";
@@ -1,7 +1,8 @@
1
- import { byte, int, Nullable, Terminable, unitValue, UUID } from "@opendaw/lib-std";
1
+ import { int, Nullable, Terminable, UUID } from "@opendaw/lib-std";
2
2
  import { ppqn } from "@opendaw/lib-dsp";
3
3
  import { AudioData } from "./audio/AudioData";
4
4
  import { ClipSequencingUpdates } from "./ClipNotifications";
5
+ import { NoteSignal } from "./NoteSignal";
5
6
  export interface EngineCommands extends Terminable {
6
7
  play(): void;
7
8
  stop(reset: boolean): void;
@@ -11,8 +12,8 @@ export interface EngineCommands extends Terminable {
11
12
  setMetronomeEnabled(enabled: boolean): void;
12
13
  queryLoadingComplete(): Promise<boolean>;
13
14
  panic(): void;
14
- noteOn(uuid: UUID.Format, pitch: byte, velocity: unitValue): void;
15
- noteOff(uuid: UUID.Format, pitch: byte): void;
15
+ noteSignal(signal: NoteSignal): void;
16
+ ignoreNoteRegion(uuid: UUID.Format): void;
16
17
  scheduleClipPlay(clipIds: ReadonlyArray<UUID.Format>): void;
17
18
  scheduleClipStop(trackIds: ReadonlyArray<UUID.Format>): void;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AAEzD,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,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACtC,aAAa,IAAI,IAAI,CAAA;IAErB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,IAAI,IAAI,CAAA;IAEb,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IACjE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;IAE7C,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACjD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5D,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,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,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,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACtC,aAAa,IAAI,IAAI,CAAA;IAErB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3C,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,MAAM,GAAG,IAAI,CAAA;IAEzC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACjD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5D,KAAK,IAAI,IAAI,CAAA;CAChB"}
@@ -4,5 +4,6 @@ export interface SampleManager {
4
4
  getOrCreate(uuid: UUID.Format): SampleLoader;
5
5
  record(loader: SampleLoader): void;
6
6
  invalidate(uuid: UUID.Format): void;
7
+ remove(uuid: UUID.Format): void;
7
8
  }
8
9
  //# sourceMappingURL=SampleManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SampleManager.d.ts","sourceRoot":"","sources":["../../src/sample/SampleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;IAC5C,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;CACtC"}
1
+ {"version":3,"file":"SampleManager.d.ts","sourceRoot":"","sources":["../../src/sample/SampleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;IAC5C,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACnC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;CAClC"}
@@ -11,6 +11,7 @@ export declare class FilteredSelection<T extends Addressable> implements Selecti
11
11
  deselectAll(): void;
12
12
  distance(inventory: ReadonlyArray<T>): ReadonlyArray<T>;
13
13
  isEmpty(): boolean;
14
+ nonEmpty(): boolean;
14
15
  count(): int;
15
16
  isSelected(selectable: T): boolean;
16
17
  selected(): ReadonlyArray<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"FilteredSelection.d.ts","sourceRoot":"","sources":["../../src/selection/FilteredSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,GAAG,EAEH,SAAS,EACT,SAAS,EACT,iBAAiB,EAEjB,YAAY,EACZ,UAAU,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAU,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;;gBAQzE,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC;IA2BnD,SAAS,IAAI,IAAI;IAEjB,MAAM,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAItC,QAAQ,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxC,WAAW,IAAI,IAAI;IAInB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAKvD,OAAO,IAAI,OAAO;IAElB,KAAK,IAAI,GAAG;IAEZ,UAAU,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO;IAElC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;IAE5B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU;IAIrD,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY;CAIpE"}
1
+ {"version":3,"file":"FilteredSelection.d.ts","sourceRoot":"","sources":["../../src/selection/FilteredSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,GAAG,EAEH,SAAS,EACT,SAAS,EACT,iBAAiB,EAEjB,YAAY,EACZ,UAAU,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAU,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;;gBAQzE,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC;IA2BnD,SAAS,IAAI,IAAI;IAEjB,MAAM,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAItC,QAAQ,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxC,WAAW,IAAI,IAAI;IAInB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAKvD,OAAO,IAAI,OAAO;IAClB,QAAQ,IAAI,OAAO;IAEnB,KAAK,IAAI,GAAG;IAEZ,UAAU,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO;IAElC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;IAE5B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU;IAIrD,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY;CAIpE"}
@@ -45,6 +45,7 @@ export class FilteredSelection {
45
45
  return this.#selection.distance(inventory.map(selectable => this.#mapping.fx(selectable))).map(item => this.#mapping.fy(item));
46
46
  }
47
47
  isEmpty() { return this.#set.size() === 0; }
48
+ nonEmpty() { return this.#set.size() > 0; }
48
49
  count() { return this.#set.size(); }
49
50
  isSelected(selectable) { return this.#set.hasKey(selectable.address); }
50
51
  selected() { return this.#set.values(); }
@@ -13,6 +13,8 @@ export declare class TrackBoxAdapter implements BoxAdapter {
13
13
  #private;
14
14
  constructor(context: BoxAdaptersContext, box: TrackBox);
15
15
  catchupAndSubscribePath(observer: Observer<Option<[string, string]>>): Subscription;
16
+ set targetDeviceName(value: string);
17
+ get targetDeviceName(): Option<string>;
16
18
  terminate(): void;
17
19
  get audioUnit(): AudioUnitBox;
18
20
  get target(): PointerField<Pointers.Automation>;
@@ -1 +1 @@
1
- {"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAI3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAyEnF,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAAgF;IAC7G,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACzE,IAAI,KAAK,IAAI,UAAU,CAAqB;IAC5C,IAAI,OAAO,IAAI,YAAY,CAAuB;IAClD,IAAI,OAAO,IAAI,YAAY,CAA2B;IACtD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,SAAS,CAAmC;IACxD,IAAI,GAAG,IAAI,QAAQ,CAAmB;IACtC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IAEjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAiBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;CAgC1D"}
1
+ {"version":3,"file":"TrackBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/TrackBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,QAAQ,EACR,MAAM,EAEN,YAAY,EAGZ,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAI3E,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,qBAAa,eAAgB,YAAW,UAAU;;gBAWlC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ;IAUtD,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAuBnF,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAUjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,CAYrC;IAoDD,SAAS;IAET,IAAI,SAAS,IAAI,YAAY,CAAgF;IAC7G,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA0B;IACzE,IAAI,KAAK,IAAI,UAAU,CAAqB;IAC5C,IAAI,OAAO,IAAI,YAAY,CAAuB;IAClD,IAAI,OAAO,IAAI,YAAY,CAA2B;IACtD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,IAAI,IAAI,SAAS,CAAmC;IACxD,IAAI,GAAG,IAAI,QAAQ,CAAmB;IACtC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IAEjD,IAAI,SAAS,IAAI,GAAG,CAAoC;IACxD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAmC;IAE3D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,OAAO;IAiBlE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS;CAgC1D"}
@@ -47,6 +47,33 @@ export class TrackBoxAdapter {
47
47
  updater();
48
48
  }));
49
49
  }
50
+ set targetDeviceName(value) {
51
+ this.#box.target.targetVertex.ifSome(targetVertex => {
52
+ const vertex = targetVertex.box;
53
+ if (vertex instanceof AudioUnitBox) {
54
+ const adapter = this.#context.boxAdapters.adapterFor(vertex, AudioUnitBoxAdapter);
55
+ return adapter.input.getValue().ifSome(({ labelField }) => labelField.setValue(value));
56
+ }
57
+ else if ("label" in vertex && vertex.label instanceof StringField) {
58
+ return vertex.label.setValue(value);
59
+ }
60
+ });
61
+ }
62
+ get targetDeviceName() {
63
+ return this.#box.target.targetVertex.flatMap(targetVertex => {
64
+ const vertex = targetVertex.box;
65
+ if (vertex instanceof AudioUnitBox) {
66
+ const adapter = this.#context.boxAdapters.adapterFor(vertex, AudioUnitBoxAdapter);
67
+ return adapter.input.label;
68
+ }
69
+ else if ("label" in vertex && vertex.label instanceof StringField) {
70
+ return Option.wrap(vertex.label.getValue());
71
+ }
72
+ else {
73
+ return Option.wrap(vertex.name);
74
+ }
75
+ });
76
+ }
50
77
  #catchupAndSubscribeTargetDeviceName(observer) {
51
78
  const targetVertex = this.#box.target.targetVertex;
52
79
  if (targetVertex.nonEmpty()) {
@@ -59,7 +86,7 @@ export class TrackBoxAdapter {
59
86
  return vertex.label.catchupAndSubscribe(owner => observer(Option.wrap(owner.getValue())));
60
87
  }
61
88
  else {
62
- // TODO This is a workaround. We need to find a way to dig into the box for a name
89
+ // This will probably not happen. It is just a fallback.
63
90
  observer(Option.wrap(vertex.name));
64
91
  return Terminable.Empty;
65
92
  }
@@ -63,7 +63,7 @@ export class NoteEventCollectionBoxAdapter {
63
63
  subscribeChange(observer) { return this.#changeNotifier.subscribe(observer); }
64
64
  selectable() { return this.#events.asArray(); }
65
65
  selectableAt(coordinates) {
66
- for (const element of this.#events.asArray()) { // TODO Optimise
66
+ for (const element of this.#events.asArray()) { // TODO Use optimized data structures
67
67
  if (element.position <= coordinates.u && coordinates.u < element.complete && element.pitch === coordinates.v) {
68
68
  return Iterables.one(element);
69
69
  }
@@ -72,7 +72,7 @@ export class NoteEventCollectionBoxAdapter {
72
72
  }
73
73
  selectablesBetween(begin, end) {
74
74
  const events = [];
75
- for (const element of this.#events.asArray()) { // TODO Optimise
75
+ for (const element of this.#events.asArray()) { // TODO Use optimized data structures
76
76
  if (Intervals.intersect1D(element.position, element.complete, begin.u, end.u)
77
77
  && Intervals.intersect1D(element.pitch, element.pitch, begin.v, end.v)) {
78
78
  events.push(element);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,16 +23,16 @@
23
23
  "test": "echo \"No tests to run\""
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-box": "^0.0.21",
27
- "@opendaw/lib-dsp": "^0.0.21",
28
- "@opendaw/lib-runtime": "^0.0.21",
29
- "@opendaw/lib-std": "^0.0.21",
30
- "@opendaw/studio-boxes": "^0.0.21",
26
+ "@opendaw/lib-box": "^0.0.23",
27
+ "@opendaw/lib-dsp": "^0.0.23",
28
+ "@opendaw/lib-runtime": "^0.0.23",
29
+ "@opendaw/lib-std": "^0.0.23",
30
+ "@opendaw/studio-boxes": "^0.0.23",
31
31
  "@opendaw/studio-enums": "^0.0.20"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@opendaw/eslint-config": "^0.0.18",
35
35
  "@opendaw/typescript-config": "^0.0.19"
36
36
  },
37
- "gitHead": "181d09058277f5e98ba65ea2f0354275e51d3dd7"
37
+ "gitHead": "c6dfce6baac23b9367d284642791e924a248083f"
38
38
  }
@@ -1,9 +0,0 @@
1
- import { byte, Terminable, unitValue } from "@opendaw/lib-std";
2
- export interface NoteSender {
3
- noteOn(note: byte, velocity: unitValue): void;
4
- noteOff(note: byte): void;
5
- }
6
- export declare namespace NoteSustainer {
7
- const start: (sender: NoteSender, note: byte, velocity?: unitValue) => Terminable;
8
- }
9
- //# sourceMappingURL=NoteSender.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoteSender.d.ts","sourceRoot":"","sources":["../src/NoteSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE5D,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IAC7C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAC5B;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,KAAK,GAAI,QAAQ,UAAU,EAAE,MAAM,IAAI,EAAE,WAAU,SAAe,KAAG,UAWjF,CAAA;CACJ"}
@@ -1,15 +0,0 @@
1
- export var NoteSustainer;
2
- (function (NoteSustainer) {
3
- NoteSustainer.start = (sender, note, velocity = 1.0) => {
4
- let playing = true;
5
- sender.noteOn(note, velocity);
6
- return {
7
- terminate: () => {
8
- if (playing) {
9
- sender.noteOff(note);
10
- playing = false;
11
- }
12
- }
13
- };
14
- };
15
- })(NoteSustainer || (NoteSustainer = {}));