@opendaw/studio-adapters 0.0.32 → 0.0.34

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 (31) hide show
  1. package/dist/BoxAdapters.d.ts.map +1 -1
  2. package/dist/BoxAdapters.js +4 -0
  3. package/dist/BoxAdaptersContext.d.ts +2 -0
  4. package/dist/BoxAdaptersContext.d.ts.map +1 -1
  5. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.d.ts +35 -0
  6. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.d.ts.map +1 -0
  7. package/dist/devices/instruments/SoundfontDeviceBoxAdapter.js +86 -0
  8. package/dist/index.d.ts +7 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +7 -0
  11. package/dist/protocols.d.ts +2 -0
  12. package/dist/protocols.d.ts.map +1 -1
  13. package/dist/soundfont/Soundfont.d.ts +6 -0
  14. package/dist/soundfont/Soundfont.d.ts.map +1 -0
  15. package/dist/soundfont/Soundfont.js +1 -0
  16. package/dist/soundfont/SoundfontFileBoxAdapter.d.ts +18 -0
  17. package/dist/soundfont/SoundfontFileBoxAdapter.d.ts.map +1 -0
  18. package/dist/soundfont/SoundfontFileBoxAdapter.js +16 -0
  19. package/dist/soundfont/SoundfontLoader.d.ts +10 -0
  20. package/dist/soundfont/SoundfontLoader.d.ts.map +1 -0
  21. package/dist/soundfont/SoundfontLoader.js +1 -0
  22. package/dist/soundfont/SoundfontLoaderManager.d.ts +7 -0
  23. package/dist/soundfont/SoundfontLoaderManager.d.ts.map +1 -0
  24. package/dist/soundfont/SoundfontLoaderManager.js +1 -0
  25. package/dist/soundfont/SoundfontLoaderState.d.ts +13 -0
  26. package/dist/soundfont/SoundfontLoaderState.d.ts.map +1 -0
  27. package/dist/soundfont/SoundfontLoaderState.js +1 -0
  28. package/dist/soundfont/SoundfontMetaData.d.ts +7 -0
  29. package/dist/soundfont/SoundfontMetaData.d.ts.map +1 -0
  30. package/dist/soundfont/SoundfontMetaData.js +1 -0
  31. package/package.json +9 -8
@@ -1 +1 @@
1
- {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAKL,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAoF5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAMvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;CAgEtG"}
1
+ {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAKL,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAsF5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAQvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;CAkEtG"}
@@ -41,6 +41,8 @@ import { ZeitgeistDeviceBoxAdapter } from "./devices/midi-effects/ZeitgeistDevic
41
41
  import { GrooveShuffleBoxAdapter } from "./grooves/GrooveShuffleBoxAdapter";
42
42
  import { UnknownAudioEffectDeviceBoxAdapter } from "./devices/audio-effects/UnknownAudioEffectDeviceBoxAdapter";
43
43
  import { UnknownMidiEffectDeviceBoxAdapter } from "./devices/midi-effects/UnknownMidiEffectDeviceBoxAdapter";
44
+ import { SoundfontDeviceBoxAdapter } from "./devices/instruments/SoundfontDeviceBoxAdapter";
45
+ import { SoundfontFileBoxAdapter } from "./soundfont/SoundfontFileBoxAdapter";
44
46
  export class BoxAdapters {
45
47
  #context;
46
48
  #adapters;
@@ -100,6 +102,7 @@ export class BoxAdapters {
100
102
  visitTapeDeviceBox: (box) => new TapeDeviceBoxAdapter(this.#context, box),
101
103
  visitNanoDeviceBox: (box) => new NanoDeviceBoxAdapter(this.#context, box),
102
104
  visitVaporisateurDeviceBox: (box) => new VaporisateurDeviceBoxAdapter(this.#context, box),
105
+ visitSoundfontDeviceBox: (box) => new SoundfontDeviceBoxAdapter(this.#context, box),
103
106
  visitModularBox: (box) => new ModularAdapter(this.#context, box),
104
107
  visitModuleConnectionBox: (box) => new ModuleConnectionAdapter(this.#context, box),
105
108
  visitModuleDelayBox: (box) => new ModuleDelayAdapter(this.#context, box),
@@ -111,6 +114,7 @@ export class BoxAdapters {
111
114
  visitAudioUnitBox: (box) => new AudioUnitBoxAdapter(this.#context, box),
112
115
  visitAudioBusBox: (box) => new AudioBusBoxAdapter(this.#context, box),
113
116
  visitAuxSendBox: (box) => new AuxSendBoxAdapter(this.#context, box),
117
+ visitSoundfontFileBox: (box) => new SoundfontFileBoxAdapter(this.#context, box),
114
118
  visitAudioFileBox: (box) => new AudioFileBoxAdapter(this.#context, box),
115
119
  visitAudioClipBox: (box) => new AudioClipBoxAdapter(this.#context, box),
116
120
  visitAudioRegionBox: (box) => new AudioRegionBoxAdapter(this.#context, box),
@@ -7,10 +7,12 @@ import { ClipSequencing } from "./ClipSequencing";
7
7
  import { ParameterFieldAdapters } from "./ParameterFieldAdapters";
8
8
  import { BoxAdapters } from "./BoxAdapters";
9
9
  import { SampleLoaderManager } from "./sample/SampleLoaderManager";
10
+ import { SoundfontLoaderManager } from "./soundfont/SoundfontLoaderManager";
10
11
  export interface BoxAdaptersContext extends Terminable {
11
12
  get boxGraph(): BoxGraph;
12
13
  get boxAdapters(): BoxAdapters;
13
14
  get sampleManager(): SampleLoaderManager;
15
+ get soundfontManager(): SoundfontLoaderManager;
14
16
  get rootBoxAdapter(): RootBoxAdapter;
15
17
  get timelineBoxAdapter(): TimelineBoxAdapter;
16
18
  get liveStreamReceiver(): LiveStreamReceiver;
@@ -1 +1 @@
1
- {"version":3,"file":"BoxAdaptersContext.d.ts","sourceRoot":"","sources":["../src/BoxAdaptersContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IAClD,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,WAAW,IAAI,WAAW,CAAA;IAC9B,IAAI,aAAa,IAAI,mBAAmB,CAAA;IACxC,IAAI,cAAc,IAAI,cAAc,CAAA;IACpC,IAAI,kBAAkB,IAAI,kBAAkB,CAAA;IAC5C,IAAI,kBAAkB,IAAI,kBAAkB,CAAA;IAC5C,IAAI,qBAAqB,IAAI,qBAAqB,CAAA;IAClD,IAAI,cAAc,IAAI,cAAc,CAAA;IACpC,IAAI,sBAAsB,IAAI,sBAAsB,CAAA;IACpD,IAAI,GAAG,IAAI,MAAM,CAAA;IACjB,IAAI,YAAY,IAAI,OAAO,CAAA;IAC3B,IAAI,cAAc,IAAI,OAAO,CAAA;CAChC"}
1
+ {"version":3,"file":"BoxAdaptersContext.d.ts","sourceRoot":"","sources":["../src/BoxAdaptersContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,oCAAoC,CAAA;AAEzE,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IAClD,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,WAAW,IAAI,WAAW,CAAA;IAC9B,IAAI,aAAa,IAAI,mBAAmB,CAAA;IACxC,IAAI,gBAAgB,IAAI,sBAAsB,CAAA;IAC9C,IAAI,cAAc,IAAI,cAAc,CAAA;IACpC,IAAI,kBAAkB,IAAI,kBAAkB,CAAA;IAC5C,IAAI,kBAAkB,IAAI,kBAAkB,CAAA;IAC5C,IAAI,qBAAqB,IAAI,qBAAqB,CAAA;IAClD,IAAI,cAAc,IAAI,cAAc,CAAA;IACpC,IAAI,sBAAsB,IAAI,sBAAsB,CAAA;IACpD,IAAI,GAAG,IAAI,MAAM,CAAA;IACjB,IAAI,YAAY,IAAI,OAAO,CAAA;IAC3B,IAAI,cAAc,IAAI,OAAO,CAAA;CAChC"}
@@ -0,0 +1,35 @@
1
+ import { int, ObservableOption, UUID } from "@opendaw/lib-std";
2
+ import { SoundfontDeviceBox } from "@opendaw/studio-boxes";
3
+ import { Address, BooleanField, FieldKeys, StringField } from "@opendaw/lib-box";
4
+ import { DeviceHost, InstrumentDeviceBoxAdapter } from "../../DeviceAdapter";
5
+ import { BoxAdaptersContext } from "../../BoxAdaptersContext";
6
+ import { TrackType } from "../../timeline/TrackType";
7
+ import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter";
8
+ import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
9
+ import { SoundfontLoader } from "../../soundfont/SoundfontLoader";
10
+ import type { Preset, SoundFont2 } from "soundfont2";
11
+ export declare class SoundfontDeviceBoxAdapter implements InstrumentDeviceBoxAdapter {
12
+ #private;
13
+ readonly type = "instrument";
14
+ readonly accepts = "midi";
15
+ readonly namedParameter: {};
16
+ constructor(context: BoxAdaptersContext, box: SoundfontDeviceBox);
17
+ get loader(): ObservableOption<SoundfontLoader>;
18
+ get soundfont(): ObservableOption<SoundFont2>;
19
+ get preset(): ObservableOption<Preset>;
20
+ get presetIndex(): int;
21
+ get box(): SoundfontDeviceBox;
22
+ get uuid(): UUID.Bytes;
23
+ get address(): Address;
24
+ get labelField(): StringField;
25
+ get iconField(): StringField;
26
+ get defaultTrackType(): TrackType;
27
+ get enabledField(): BooleanField;
28
+ get minimizedField(): BooleanField;
29
+ get acceptsMidiEvents(): boolean;
30
+ deviceHost(): DeviceHost;
31
+ audioUnitBoxAdapter(): AudioUnitBoxAdapter;
32
+ parameterAt(fieldIndices: FieldKeys): AutomatableParameterFieldAdapter;
33
+ terminate(): void;
34
+ }
35
+ //# sourceMappingURL=SoundfontDeviceBoxAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/SoundfontDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAA2B,gBAAgB,EAAsB,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACzG,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAA;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAA;AAC/D,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,YAAY,CAAA;AAElD,qBAAa,yBAA0B,YAAW,0BAA0B;;IACxE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;IAQzB,QAAQ,CAAC,cAAc,KAAA;gBAMX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAqBhE,IAAI,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAsB;IACrE,IAAI,SAAS,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAyB;IACtE,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAsB;IAC5D,IAAI,WAAW,IAAI,GAAG,CAA0C;IAChE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAE9C,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,WAAW,CAAC,YAAY,EAAE,SAAS,GAAG,gCAAgC;IAEtE,SAAS,IAAI,IAAI;CAsCpB"}
@@ -0,0 +1,86 @@
1
+ import { MutableObservableOption, Terminator } from "@opendaw/lib-std";
2
+ import { Devices } from "../../DeviceAdapter";
3
+ import { ParameterAdapterSet } from "../../ParameterAdapterSet";
4
+ import { TrackType } from "../../timeline/TrackType";
5
+ export class SoundfontDeviceBoxAdapter {
6
+ type = "instrument";
7
+ accepts = "midi";
8
+ #terminator = new Terminator();
9
+ #context;
10
+ #box;
11
+ #parametric;
12
+ namedParameter; // let typescript infer the type
13
+ #loader;
14
+ #soundfont;
15
+ #preset;
16
+ constructor(context, box) {
17
+ this.#context = context;
18
+ this.#box = box;
19
+ this.#parametric = new ParameterAdapterSet(this.#context);
20
+ this.namedParameter = this.#wrapParameters(box);
21
+ this.#loader = new MutableObservableOption();
22
+ this.#soundfont = new MutableObservableOption();
23
+ this.#preset = new MutableObservableOption();
24
+ this.#terminator.ownAll(this.#loader.subscribe(this.#loaderObserver), this.#box.file.catchupAndSubscribe(({ targetVertex }) => this.#loader.wrapOption(targetVertex.map(({ box }) => context.soundfontManager.getOrCreate(box.address.uuid)))), this.#box.presetIndex.catchupAndSubscribe(owner => this.#soundfont.match({
25
+ none: () => this.#preset.clear(),
26
+ some: soundfont => this.#preset.wrap(soundfont.presets[owner.getValue()] ?? soundfont.presets[0])
27
+ })));
28
+ }
29
+ get loader() { return this.#loader; }
30
+ get soundfont() { return this.#soundfont; }
31
+ get preset() { return this.#preset; }
32
+ get presetIndex() { return this.#box.presetIndex.getValue(); }
33
+ get box() { return this.#box; }
34
+ get uuid() { return this.#box.address.uuid; }
35
+ get address() { return this.#box.address; }
36
+ get labelField() { return this.#box.label; }
37
+ get iconField() { return this.#box.icon; }
38
+ get defaultTrackType() { return TrackType.Notes; }
39
+ get enabledField() { return this.#box.enabled; }
40
+ get minimizedField() { return this.#box.minimized; }
41
+ get acceptsMidiEvents() { return true; }
42
+ deviceHost() {
43
+ return this.#context.boxAdapters
44
+ .adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
45
+ }
46
+ audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
47
+ parameterAt(fieldIndices) { return this.#parametric.parameterAt(fieldIndices); }
48
+ terminate() { this.#parametric.terminate(); }
49
+ #wrapParameters(_box) {
50
+ return {};
51
+ }
52
+ #loaderObserver = (loader) => loader.match({
53
+ none: () => {
54
+ this.#preset.clear();
55
+ this.#soundfont.clear();
56
+ },
57
+ some: loader => loader.soundfont.match({
58
+ none: () => {
59
+ this.#preset.clear();
60
+ this.#soundfont.clear();
61
+ const subscription = loader.subscribe(state => {
62
+ if (state.type === "loaded") {
63
+ subscription.terminate();
64
+ const soundfont = loader.soundfont.unwrap();
65
+ this.#preset.wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
66
+ this.#soundfont.wrap(soundfont);
67
+ }
68
+ else if (state.type === "error") {
69
+ subscription.terminate();
70
+ this.#preset.clear();
71
+ this.#soundfont.clear();
72
+ }
73
+ else if (state.type === "idle") {
74
+ subscription.terminate();
75
+ this.#preset.clear();
76
+ this.#soundfont.clear();
77
+ }
78
+ });
79
+ },
80
+ some: soundfont => {
81
+ this.#soundfont.wrap(soundfont);
82
+ this.#preset.wrap(soundfont.presets[this.presetIndex] ?? soundfont.presets[0]);
83
+ }
84
+ })
85
+ });
86
+ }
package/dist/index.d.ts CHANGED
@@ -46,6 +46,7 @@ export * from "./devices/instruments/NanoDeviceBoxAdapter";
46
46
  export * from "./devices/instruments/Playfield/Gate";
47
47
  export * from "./devices/instruments/Playfield/PlayfieldSampleBoxAdapter";
48
48
  export * from "./devices/instruments/PlayfieldDeviceBoxAdapter";
49
+ export * from "./devices/instruments/SoundfontDeviceBoxAdapter";
49
50
  export * from "./devices/instruments/TapeDeviceBoxAdapter";
50
51
  export * from "./devices/instruments/VaporisateurDeviceBoxAdapter";
51
52
  export * from "./devices/midi-effects/ArpeggioDeviceBoxAdapter";
@@ -81,6 +82,12 @@ export * from "./selection/SelectableVertex";
81
82
  export * from "./selection/SelectionEntry";
82
83
  export * from "./selection/VertexSelection";
83
84
  export * from "./selection/isVertexOfBox";
85
+ export * from "./soundfont/Soundfont";
86
+ export * from "./soundfont/SoundfontFileBoxAdapter";
87
+ export * from "./soundfont/SoundfontLoader";
88
+ export * from "./soundfont/SoundfontLoaderManager";
89
+ export * from "./soundfont/SoundfontLoaderState";
90
+ export * from "./soundfont/SoundfontMetaData";
84
91
  export * from "./timeline/ClipBoxAdapter";
85
92
  export * from "./timeline/MarkerBoxAdapter";
86
93
  export * from "./timeline/MarkerTrackAdapter";
@@ -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
@@ -48,6 +48,7 @@ export * from "./devices/instruments/NanoDeviceBoxAdapter";
48
48
  export * from "./devices/instruments/Playfield/Gate";
49
49
  export * from "./devices/instruments/Playfield/PlayfieldSampleBoxAdapter";
50
50
  export * from "./devices/instruments/PlayfieldDeviceBoxAdapter";
51
+ export * from "./devices/instruments/SoundfontDeviceBoxAdapter";
51
52
  export * from "./devices/instruments/TapeDeviceBoxAdapter";
52
53
  export * from "./devices/instruments/VaporisateurDeviceBoxAdapter";
53
54
  export * from "./devices/midi-effects/ArpeggioDeviceBoxAdapter";
@@ -83,6 +84,12 @@ export * from "./selection/SelectableVertex";
83
84
  export * from "./selection/SelectionEntry";
84
85
  export * from "./selection/VertexSelection";
85
86
  export * from "./selection/isVertexOfBox";
87
+ export * from "./soundfont/Soundfont";
88
+ export * from "./soundfont/SoundfontFileBoxAdapter";
89
+ export * from "./soundfont/SoundfontLoader";
90
+ export * from "./soundfont/SoundfontLoaderManager";
91
+ export * from "./soundfont/SoundfontLoaderState";
92
+ export * from "./soundfont/SoundfontMetaData";
86
93
  export * from "./timeline/ClipBoxAdapter";
87
94
  export * from "./timeline/MarkerBoxAdapter";
88
95
  export * from "./timeline/MarkerTrackAdapter";
@@ -3,6 +3,7 @@ import { ppqn } from "@opendaw/lib-dsp";
3
3
  import { AudioData } from "./audio/AudioData";
4
4
  import { ClipSequencingUpdates } from "./ClipNotifications";
5
5
  import { NoteSignal } from "./NoteSignal";
6
+ import type { SoundFont2 } from "soundfont2";
6
7
  export interface EngineCommands extends Terminable {
7
8
  play(): void;
8
9
  stop(reset: boolean): void;
@@ -21,6 +22,7 @@ export interface EngineCommands extends Terminable {
21
22
  export interface EngineToClient {
22
23
  log(message: string): void;
23
24
  fetchAudio(uuid: UUID.Bytes): Promise<AudioData>;
25
+ fetchSoundfont(uuid: UUID.Bytes): Promise<SoundFont2>;
24
26
  notifyClipSequenceChanges(changes: ClipSequencingUpdates): void;
25
27
  switchMarkerState(state: Nullable<[UUID.Bytes, int]>): void;
26
28
  ready(): void;
@@ -1 +1 @@
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,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACnD,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,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CAC9D;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,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;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,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,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACnD,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,KAAK,GAAG,IAAI,CAAA;IAExC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CAC9D;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC/D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CAChB"}
@@ -0,0 +1,6 @@
1
+ import { UUID } from "@opendaw/lib-std";
2
+ import { SoundfontMetaData } from "./SoundfontMetaData";
3
+ export type Soundfont = {
4
+ uuid: UUID.String;
5
+ } & SoundfontMetaData;
6
+ //# sourceMappingURL=Soundfont.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Soundfont.d.ts","sourceRoot":"","sources":["../../src/soundfont/Soundfont.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AAErD,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import { SoundfontFileBox } from "@opendaw/studio-boxes";
2
+ import { Option, UUID } from "@opendaw/lib-std";
3
+ import { Address } from "@opendaw/lib-box";
4
+ import { BoxAdaptersContext } from "../BoxAdaptersContext";
5
+ import { BoxAdapter } from "../BoxAdapter";
6
+ import { SoundfontLoader } from "./SoundfontLoader";
7
+ import type { SoundFont2 } from "soundfont2";
8
+ export declare class SoundfontFileBoxAdapter implements BoxAdapter {
9
+ #private;
10
+ constructor(context: BoxAdaptersContext, box: SoundfontFileBox);
11
+ get box(): SoundfontFileBox;
12
+ get uuid(): UUID.Bytes;
13
+ get address(): Address;
14
+ get soundfont(): Option<SoundFont2>;
15
+ getOrCreateLoader(): SoundfontLoader;
16
+ terminate(): void;
17
+ }
18
+ //# sourceMappingURL=SoundfontFileBoxAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontFileBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/soundfont/SoundfontFileBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAE1C,qBAAa,uBAAwB,YAAW,UAAU;;gBAI1C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB;IAK9D,IAAI,GAAG,IAAI,gBAAgB,CAAmB;IAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,CAA4C;IAE/E,iBAAiB,IAAI,eAAe;IAIpC,SAAS,IAAI,IAAI;CACpB"}
@@ -0,0 +1,16 @@
1
+ export class SoundfontFileBoxAdapter {
2
+ #context;
3
+ #box;
4
+ constructor(context, box) {
5
+ this.#context = context;
6
+ this.#box = box;
7
+ }
8
+ get box() { return this.#box; }
9
+ get uuid() { return this.#box.address.uuid; }
10
+ get address() { return this.#box.address; }
11
+ get soundfont() { return this.getOrCreateLoader().soundfont; }
12
+ getOrCreateLoader() {
13
+ return this.#context.soundfontManager.getOrCreate(this.#box.address.uuid);
14
+ }
15
+ terminate() { }
16
+ }
@@ -0,0 +1,10 @@
1
+ import { Observer, Option, Subscription, UUID } from "@opendaw/lib-std";
2
+ import type { SoundFont2 } from "soundfont2";
3
+ import { SoundfontLoaderState } from "./SoundfontLoaderState";
4
+ export interface SoundfontLoader {
5
+ get soundfont(): Option<SoundFont2>;
6
+ get uuid(): UUID.Bytes;
7
+ get state(): SoundfontLoaderState;
8
+ subscribe(observer: Observer<SoundfontLoaderState>): Subscription;
9
+ }
10
+ //# sourceMappingURL=SoundfontLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontLoader.d.ts","sourceRoot":"","sources":["../../src/soundfont/SoundfontLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAA;AAE3D,MAAM,WAAW,eAAe;IAC5B,IAAI,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;IACtB,IAAI,KAAK,IAAI,oBAAoB,CAAA;IACjC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,YAAY,CAAA;CACpE"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { UUID } from "@opendaw/lib-std";
2
+ import { SoundfontLoader } from "./SoundfontLoader";
3
+ export interface SoundfontLoaderManager {
4
+ getOrCreate(uuid: UUID.Bytes): SoundfontLoader;
5
+ remove(uuid: UUID.Bytes): void;
6
+ }
7
+ //# sourceMappingURL=SoundfontLoaderManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontLoaderManager.d.ts","sourceRoot":"","sources":["../../src/soundfont/SoundfontLoaderManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AAEjD,MAAM,WAAW,sBAAsB;IACnC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,eAAe,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;CACjC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import { unitValue } from "@opendaw/lib-std";
2
+ export type SoundfontLoaderState = {
3
+ readonly type: "idle";
4
+ } | {
5
+ readonly type: "progress";
6
+ progress: unitValue;
7
+ } | {
8
+ readonly type: "error";
9
+ readonly reason: string;
10
+ } | {
11
+ readonly type: "loaded";
12
+ };
13
+ //# sourceMappingURL=SoundfontLoaderState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontLoaderState.d.ts","sourceRoot":"","sources":["../../src/soundfont/SoundfontLoaderState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE1C,MAAM,MAAM,oBAAoB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export interface SoundfontMetaData {
2
+ name: string;
3
+ url: string;
4
+ license: string;
5
+ origin: "openDAW" | "import";
6
+ }
7
+ //# sourceMappingURL=SoundfontMetaData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundfontMetaData.d.ts","sourceRoot":"","sources":["../../src/soundfont/SoundfontMetaData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;CAC/B"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,16 +23,17 @@
23
23
  "test": "echo \"No tests to run\""
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-box": "^0.0.31",
27
- "@opendaw/lib-dsp": "^0.0.31",
28
- "@opendaw/lib-runtime": "^0.0.31",
29
- "@opendaw/lib-std": "^0.0.31",
30
- "@opendaw/studio-boxes": "^0.0.31",
31
- "@opendaw/studio-enums": "^0.0.22"
26
+ "@opendaw/lib-box": "^0.0.33",
27
+ "@opendaw/lib-dsp": "^0.0.33",
28
+ "@opendaw/lib-runtime": "^0.0.33",
29
+ "@opendaw/lib-std": "^0.0.33",
30
+ "@opendaw/studio-boxes": "^0.0.33",
31
+ "@opendaw/studio-enums": "^0.0.24",
32
+ "soundfont2": "^0.5.0"
32
33
  },
33
34
  "devDependencies": {
34
35
  "@opendaw/eslint-config": "^0.0.19",
35
36
  "@opendaw/typescript-config": "^0.0.20"
36
37
  },
37
- "gitHead": "c1718ba63c1f99d28d6a5178c39e96c89b5bb364"
38
+ "gitHead": "cae71a4fa8c78a8a37c48a120f25fc1b3767100a"
38
39
  }