@opendaw/studio-core 0.0.24 → 0.0.26
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/AudioDevices.js +4 -4
- package/dist/AudioOfflineRenderer.d.ts +8 -0
- package/dist/AudioOfflineRenderer.d.ts.map +1 -0
- package/dist/AudioOfflineRenderer.js +88 -0
- package/dist/AudioWorklets.d.ts +1 -1
- package/dist/AudioWorklets.d.ts.map +1 -1
- package/dist/AudioWorklets.js +3 -2
- package/dist/FilePickerAcceptTypes.d.ts +8 -0
- package/dist/FilePickerAcceptTypes.d.ts.map +1 -0
- package/dist/FilePickerAcceptTypes.js +27 -0
- package/dist/WorkerAgents.d.ts +1 -1
- package/dist/WorkerAgents.d.ts.map +1 -1
- package/dist/WorkerAgents.js +3 -3
- package/dist/capture/CaptureAudio.d.ts.map +1 -1
- package/dist/capture/CaptureAudio.js +9 -4
- package/dist/capture/CaptureMidi.d.ts.map +1 -1
- package/dist/capture/CaptureMidi.js +5 -4
- package/dist/capture/Recording.d.ts.map +1 -1
- package/dist/capture/Recording.js +3 -3
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -8
- package/dist/midi/MIDILearning.d.ts +26 -0
- package/dist/midi/MIDILearning.d.ts.map +1 -0
- package/dist/midi/MIDILearning.js +88 -0
- package/dist/midi/MIDIMessageSubscriber.d.ts +5 -0
- package/dist/midi/MIDIMessageSubscriber.d.ts.map +1 -0
- package/dist/midi/MIDIMessageSubscriber.js +40 -0
- package/dist/{MidiDevices.d.ts → midi/MidiDevices.d.ts} +2 -1
- package/dist/midi/MidiDevices.d.ts.map +1 -0
- package/dist/{MidiDevices.js → midi/MidiDevices.js} +16 -4
- package/dist/processors.js +3 -3
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts +8 -1
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +14 -3
- package/dist/project/ProjectBundle.d.ts +1 -1
- package/dist/project/ProjectBundle.d.ts.map +1 -1
- package/dist/project/ProjectBundle.js +9 -11
- package/dist/project/ProjectEnv.d.ts +0 -7
- package/dist/project/ProjectEnv.d.ts.map +1 -1
- package/dist/project/ProjectProfile.js +3 -3
- package/dist/samples/OpenSampleAPI.d.ts +14 -0
- package/dist/samples/OpenSampleAPI.d.ts.map +1 -0
- package/dist/samples/OpenSampleAPI.js +109 -0
- package/dist/samples/SampleAPI.d.ts +10 -0
- package/dist/samples/SampleAPI.d.ts.map +1 -0
- package/dist/samples/SampleAPI.js +1 -0
- package/dist/samples/SampleImporter.d.ts +11 -0
- package/dist/samples/SampleImporter.d.ts.map +1 -0
- package/dist/samples/SampleImporter.js +1 -0
- package/dist/workers.js +2 -2
- package/dist/workers.js.map +4 -4
- package/package.json +14 -14
- package/dist/MidiDevices.d.ts.map +0 -1
@@ -1,9 +1,10 @@
|
|
1
|
-
import { MutableObservableValue, ObservableOption, Option } from "@opendaw/lib-std";
|
1
|
+
import { byte, MutableObservableValue, ObservableOption, Observer, Option, Subscription } from "@opendaw/lib-std";
|
2
2
|
export declare class MidiDevices {
|
3
3
|
#private;
|
4
4
|
static canRequestMidiAccess(): boolean;
|
5
5
|
static requestPermission(): Promise<undefined>;
|
6
6
|
static get(): ObservableOption<MIDIAccess>;
|
7
|
+
static subscribeMessageEvents(observer: Observer<MIDIMessageEvent>, channel?: byte): Subscription;
|
7
8
|
static inputs(): Option<ReadonlyArray<MIDIInput>>;
|
8
9
|
static outputs(): Option<ReadonlyArray<MIDIOutput>>;
|
9
10
|
static panic(): void;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MidiDevices.d.ts","sourceRoot":"","sources":["../../src/midi/MidiDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EAIJ,sBAAsB,EAEtB,gBAAgB,EAEhB,QAAQ,EACR,MAAM,EACN,YAAY,EAEf,MAAM,kBAAkB,CAAA;AAKzB,qBAAa,WAAW;;IACpB,MAAM,CAAC,oBAAoB,IAAI,OAAO;WAIzB,iBAAiB;IAiB9B,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAE1C,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;IAWjG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAIjD,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAInD,MAAM,CAAC,KAAK,IAAI,IAAI;IAkBpB,MAAM,CAAC,SAAS,IAAI,sBAAsB,CAAC,OAAO,CAAC;CAqCtD"}
|
@@ -7,17 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
9
9
|
};
|
10
|
-
import { Lazy, MutableObservableOption, MutableObservableValue, Notifier,
|
10
|
+
import { Errors, Lazy, MutableObservableOption, MutableObservableValue, Notifier, Terminator } from "@opendaw/lib-std";
|
11
11
|
import { MidiData } from "@opendaw/lib-midi";
|
12
12
|
import { Promises } from "@opendaw/lib-runtime";
|
13
|
+
import { MIDIMessageSubscriber } from "./MIDIMessageSubscriber";
|
13
14
|
export class MidiDevices {
|
14
15
|
static canRequestMidiAccess() { return "requestMIDIAccess" in navigator; }
|
16
|
+
static #memoizedRequest = Promises.memoizeAsync(() => navigator.requestMIDIAccess({ sysex: false }));
|
15
17
|
static async requestPermission() {
|
16
18
|
if (this.canRequestMidiAccess()) {
|
17
|
-
const { status, value: midiAccess, error } = await Promises.tryCatch(
|
19
|
+
const { status, value: midiAccess, error } = await Promises.tryCatch(this.#memoizedRequest());
|
18
20
|
if (status === "rejected") {
|
19
21
|
console.warn(error);
|
20
|
-
return warn("Could not request MIDI");
|
22
|
+
return Errors.warn("Could not request MIDI");
|
21
23
|
}
|
22
24
|
const numberOfInputs = midiAccess.inputs.size;
|
23
25
|
const numberOfOutputs = midiAccess.outputs.size;
|
@@ -25,10 +27,20 @@ export class MidiDevices {
|
|
25
27
|
this.#midiAccess.wrap(midiAccess);
|
26
28
|
}
|
27
29
|
else {
|
28
|
-
return warn("This browser does not support MIDI");
|
30
|
+
return Errors.warn("This browser does not support MIDI");
|
29
31
|
}
|
30
32
|
}
|
31
33
|
static get() { return this.#midiAccess; }
|
34
|
+
static subscribeMessageEvents(observer, channel) {
|
35
|
+
return this.get().match({
|
36
|
+
none: () => {
|
37
|
+
const terminator = new Terminator();
|
38
|
+
terminator.own(this.available().subscribe(() => terminator.own(this.subscribeMessageEvents(observer, channel))));
|
39
|
+
return terminator;
|
40
|
+
},
|
41
|
+
some: midi => MIDIMessageSubscriber.subscribeMessageEvents(midi, observer, channel)
|
42
|
+
});
|
43
|
+
}
|
32
44
|
static inputs() {
|
33
45
|
return this.get().map(({ inputs }) => Array.from(inputs.values()));
|
34
46
|
}
|