@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.
- package/dist/NoteBroadcaster.d.ts.map +1 -1
- package/dist/NoteBroadcaster.js +10 -6
- package/dist/NoteLifeCycle.d.ts +6 -0
- package/dist/NoteLifeCycle.d.ts.map +1 -0
- package/dist/NoteLifeCycle.js +16 -0
- package/dist/NoteSignal.d.ts +21 -0
- package/dist/NoteSignal.d.ts.map +1 -0
- package/dist/NoteSignal.js +22 -0
- package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/protocols.d.ts +4 -3
- package/dist/protocols.d.ts.map +1 -1
- package/dist/sample/SampleManager.d.ts +1 -0
- package/dist/sample/SampleManager.d.ts.map +1 -1
- package/dist/selection/FilteredSelection.d.ts +1 -0
- package/dist/selection/FilteredSelection.d.ts.map +1 -1
- package/dist/selection/FilteredSelection.js +1 -0
- package/dist/timeline/TrackBoxAdapter.d.ts +2 -0
- package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -1
- package/dist/timeline/TrackBoxAdapter.js +28 -1
- package/dist/timeline/collection/NoteEventCollectionBoxAdapter.js +2 -2
- package/package.json +7 -7
- package/dist/NoteSender.d.ts +0 -9
- package/dist/NoteSender.d.ts.map +0 -1
- package/dist/NoteSender.js +0 -15
@@ -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;
|
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"}
|
package/dist/NoteBroadcaster.js
CHANGED
@@ -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) {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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.
|
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 "./
|
19
|
+
export * from "./NoteLifeCycle";
|
20
|
+
export * from "./NoteSignal";
|
20
21
|
export * from "./NoteStreamReceiver";
|
21
22
|
export * from "./ParameterAdapterSet";
|
22
23
|
export * from "./ParameterFieldAdapters";
|
package/dist/index.d.ts.map
CHANGED
@@ -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 "./
|
21
|
+
export * from "./NoteLifeCycle";
|
22
|
+
export * from "./NoteSignal";
|
22
23
|
export * from "./NoteStreamReceiver";
|
23
24
|
export * from "./ParameterAdapterSet";
|
24
25
|
export * from "./ParameterFieldAdapters";
|
package/dist/protocols.d.ts
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
import {
|
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
|
-
|
15
|
-
|
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
|
}
|
package/dist/protocols.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
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"}
|
@@ -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;
|
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;
|
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;
|
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
|
-
//
|
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
|
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
|
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.
|
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.
|
27
|
-
"@opendaw/lib-dsp": "^0.0.
|
28
|
-
"@opendaw/lib-runtime": "^0.0.
|
29
|
-
"@opendaw/lib-std": "^0.0.
|
30
|
-
"@opendaw/studio-boxes": "^0.0.
|
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": "
|
37
|
+
"gitHead": "c6dfce6baac23b9367d284642791e924a248083f"
|
38
38
|
}
|
package/dist/NoteSender.d.ts
DELETED
@@ -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
|
package/dist/NoteSender.d.ts.map
DELETED
@@ -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"}
|
package/dist/NoteSender.js
DELETED
@@ -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 = {}));
|