@opendaw/studio-adapters 0.0.119 → 0.1.0

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 (30) hide show
  1. package/dist/BoxAdapters.d.ts.map +1 -1
  2. package/dist/BoxAdapters.js +2 -0
  3. package/dist/RingBuffer.d.ts +1 -1
  4. package/dist/RingBuffer.d.ts.map +1 -1
  5. package/dist/RingBuffer.js +47 -37
  6. package/dist/audio/AudioPlayMode.d.ts +2 -1
  7. package/dist/audio/AudioPlayMode.d.ts.map +1 -1
  8. package/dist/audio/AudioPlayMode.js +4 -1
  9. package/dist/audio/AudioSignalsmithBoxAdapter.d.ts +24 -0
  10. package/dist/audio/AudioSignalsmithBoxAdapter.d.ts.map +1 -0
  11. package/dist/audio/AudioSignalsmithBoxAdapter.js +68 -0
  12. package/dist/audio/TransientMarkerBoxAdapter.d.ts +5 -2
  13. package/dist/audio/TransientMarkerBoxAdapter.d.ts.map +1 -1
  14. package/dist/audio/TransientMarkerBoxAdapter.js +15 -2
  15. package/dist/devices/audio-effects/VocoderDeviceBoxAdapter.d.ts +2 -2
  16. package/dist/devices/audio-effects/VocoderDeviceBoxAdapter.js +2 -2
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/preset/PresetDecoder.d.ts.map +1 -1
  21. package/dist/preset/PresetDecoder.js +3 -0
  22. package/dist/timeline/AudioContentBoxAdapter.d.ts +2 -0
  23. package/dist/timeline/AudioContentBoxAdapter.d.ts.map +1 -1
  24. package/dist/timeline/clip/AudioClipBoxAdapter.d.ts +2 -0
  25. package/dist/timeline/clip/AudioClipBoxAdapter.d.ts.map +1 -1
  26. package/dist/timeline/clip/AudioClipBoxAdapter.js +4 -0
  27. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +2 -0
  28. package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -1
  29. package/dist/timeline/region/AudioRegionBoxAdapter.js +4 -0
  30. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AA6G5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AA2BvC,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;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CAuE3C"}
1
+ {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AA8G5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AA4BvC,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;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CAwE3C"}
@@ -72,6 +72,7 @@ import { WaveshaperDeviceBoxAdapter } from "./devices/audio-effects/WaveshaperDe
72
72
  import { WerkstattDeviceBoxAdapter } from "./devices/audio-effects/WerkstattDeviceBoxAdapter";
73
73
  import { NeuralAmpModelBoxAdapter } from "./nam/NeuralAmpModelBoxAdapter";
74
74
  import { AudioPitchStretchBoxAdapter } from "./audio/AudioPitchStretchBoxAdapter";
75
+ import { AudioSignalsmithBoxAdapter } from "./audio/AudioSignalsmithBoxAdapter";
75
76
  import { TransientMarkerBoxAdapter } from "./audio/TransientMarkerBoxAdapter";
76
77
  import { WarpMarkerBoxAdapter } from "./audio/WarpMarkerBoxAdapter";
77
78
  import { AudioTimeStretchBoxAdapter } from "./audio/AudioTimeStretchBoxAdapter";
@@ -130,6 +131,7 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
130
131
  visitAudioFileBox: (box) => new AudioFileBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
131
132
  visitAudioTimeStretchBox: (box) => new AudioTimeStretchBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
132
133
  visitAudioPitchStretchBox: (box) => new AudioPitchStretchBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
134
+ visitAudioSignalsmithBox: (box) => new AudioSignalsmithBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
133
135
  visitTransientMarkerBox: (box) => new TransientMarkerBoxAdapter(box),
134
136
  visitWarpMarkerBox: (box) => new WarpMarkerBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
135
137
  visitApparatDeviceBox: (box) => new ApparatDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
@@ -12,7 +12,7 @@ export declare namespace RingBuffer {
12
12
  interface Reader {
13
13
  stop(): void;
14
14
  }
15
- const reader: ({ sab, numChunks, numberOfChannels, bufferSize }: Config, append: Procedure<Array<Float32Array>>) => Reader;
15
+ const reader: (config: Config, append: Procedure<Array<Float32Array>>) => Reader;
16
16
  const writer: ({ sab, numChunks, numberOfChannels, bufferSize }: Config) => Writer;
17
17
  }
18
18
  export declare const mergeChunkPlanes: (chunks: ReadonlyArray<ReadonlyArray<Float32Array>>, bufferSize: int, maxFrames?: int) => ReadonlyArray<Float32Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../src/RingBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAS,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAItE,yBAAiB,UAAU,CAAC;IACxB,UAAiB,MAAM;QACnB,GAAG,EAAE,iBAAiB,CAAA;QACtB,SAAS,EAAE,GAAG,CAAA;QACd,gBAAgB,EAAE,GAAG,CAAA;QACrB,UAAU,EAAE,GAAG,CAAA;KAClB;IAED,UAAiB,MAAM;QAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;KAAC;IAE5E,UAAiB,MAAM;QAAE,IAAI,IAAI,IAAI,CAAA;KAAC;IAE/B,MAAM,MAAM,GAAI,kDAKG,MAAM,EAAE,QAAQ,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAG,MAqC1E,CAAA;IAEM,MAAM,MAAM,GAAI,kDAAgD,MAAM,KAAG,MAqB/E,CAAA;CACJ;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAClD,YAAY,GAAG,EACf,YAAW,GAA6B,KAAG,aAAa,CAAC,YAAY,CAkBrG,CAAA"}
1
+ {"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../src/RingBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAS,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAEtE,yBAAiB,UAAU,CAAC;IACxB,UAAiB,MAAM;QACnB,GAAG,EAAE,iBAAiB,CAAA;QACtB,SAAS,EAAE,GAAG,CAAA;QACd,gBAAgB,EAAE,GAAG,CAAA;QACrB,UAAU,EAAE,GAAG,CAAA;KAClB;IAED,UAAiB,MAAM;QAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;KAAC;IAE5E,UAAiB,MAAM;QAAE,IAAI,IAAI,IAAI,CAAA;KAAC;IAM/B,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,QAAQ,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAG,MA8C/E,CAAA;IAEM,MAAM,MAAM,GAAI,kDAAgD,MAAM,KAAG,MAqB/E,CAAA;CACJ;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAClD,YAAY,GAAG,EACf,YAAW,GAA6B,KAAG,aAAa,CAAC,YAAY,CAkBrG,CAAA"}
@@ -1,48 +1,58 @@
1
1
  import { Arrays, assert, panic } from "@opendaw/lib-std";
2
2
  export var RingBuffer;
3
3
  (function (RingBuffer) {
4
- RingBuffer.reader = ({ sab, numChunks, numberOfChannels, bufferSize }, append) => {
5
- let running = true;
6
- const pointers = new Int32Array(sab, 0, 2);
7
- const audio = new Float32Array(sab, 8);
8
- const planarChunk = new Float32Array(numberOfChannels * bufferSize);
9
- const canBlock = typeof document === "undefined"; // for usage in workers
10
- const step = () => {
11
- if (!running) {
12
- return;
13
- }
14
- let readPtr = Atomics.load(pointers, 1);
15
- let writePtr = Atomics.load(pointers, 0);
16
- if (readPtr === writePtr) {
17
- if (canBlock) {
18
- Atomics.wait(pointers, 0, writePtr);
19
- }
20
- else {
21
- setTimeout(step, 1); // non‑blocking poll fallback
22
- return;
4
+ // The reader drains the ring on a dedicated worker that blocks on `Atomics.wait` (woken by the writer's
5
+ // `Atomics.notify`). This avoids the main-thread `setTimeout` polling that Chrome throttles to ~1s in hidden
6
+ // tabs, which used to overrun the ring (~0.37s) and silently drop recorded audio. Drained chunks are posted
7
+ // back (transferred) so the caller's `append` still runs on the main thread. See issue #290.
8
+ RingBuffer.reader = (config, append) => {
9
+ const code = `
10
+ onmessage = (event) => {
11
+ const {sab, numChunks, numberOfChannels, bufferSize} = event.data
12
+ const pointers = new Int32Array(sab, 0, 2)
13
+ const audio = new Float32Array(sab, 8)
14
+ const chunkFloats = numberOfChannels * bufferSize
15
+ while (true) {
16
+ let readPtr = Atomics.load(pointers, 1)
17
+ let writePtr = Atomics.load(pointers, 0)
18
+ if (readPtr === writePtr) {
19
+ Atomics.wait(pointers, 0, writePtr)
20
+ writePtr = Atomics.load(pointers, 0)
21
+ }
22
+ const batch = []
23
+ const transfer = []
24
+ while (readPtr !== writePtr) {
25
+ const offset = readPtr * chunkFloats
26
+ const channels = []
27
+ for (let channel = 0; channel < numberOfChannels; channel++) {
28
+ const start = offset + channel * bufferSize
29
+ const frames = audio.slice(start, start + bufferSize)
30
+ channels.push(frames)
31
+ transfer.push(frames.buffer)
32
+ }
33
+ readPtr = (readPtr + 1) % numChunks
34
+ Atomics.store(pointers, 1, readPtr)
35
+ batch.push(channels)
36
+ }
37
+ postMessage(batch, transfer)
23
38
  }
24
- writePtr = Atomics.load(pointers, 0);
25
39
  }
26
- while (readPtr !== writePtr) {
27
- const offset = readPtr * numberOfChannels * bufferSize;
28
- planarChunk.set(audio.subarray(offset, offset + numberOfChannels * bufferSize));
29
- const channels = [];
30
- for (let channel = 0; channel < numberOfChannels; channel++) {
31
- const start = channel * bufferSize;
32
- const end = start + bufferSize;
33
- channels.push(planarChunk.slice(start, end));
34
- }
35
- readPtr = (readPtr + 1) % numChunks;
36
- Atomics.store(pointers, 1, readPtr);
37
- if (!running) {
38
- return;
39
- }
40
+ `;
41
+ const url = URL.createObjectURL(new Blob([code], { type: "application/javascript" }));
42
+ const worker = new Worker(url);
43
+ worker.onmessage = (event) => {
44
+ const batch = event.data;
45
+ for (const channels of batch) {
40
46
  append(channels);
41
47
  }
42
- step();
43
48
  };
44
- step();
45
- return { stop: () => running = false };
49
+ worker.postMessage(config);
50
+ return {
51
+ stop: () => {
52
+ worker.terminate();
53
+ URL.revokeObjectURL(url);
54
+ }
55
+ };
46
56
  };
47
57
  RingBuffer.writer = ({ sab, numChunks, numberOfChannels, bufferSize }) => {
48
58
  const pointers = new Int32Array(sab, 0, 2);
@@ -1,7 +1,8 @@
1
1
  import { AudioPitchStretchBoxAdapter } from "./AudioPitchStretchBoxAdapter";
2
2
  import { AudioTimeStretchBoxAdapter } from "./AudioTimeStretchBoxAdapter";
3
+ import { AudioSignalsmithBoxAdapter } from "./AudioSignalsmithBoxAdapter";
3
4
  export declare namespace AudioPlayMode {
4
5
  const isAudioPlayMode: (mode: unknown) => mode is AudioPlayMode;
5
6
  }
6
- export type AudioPlayMode = AudioPitchStretchBoxAdapter | AudioTimeStretchBoxAdapter;
7
+ export type AudioPlayMode = AudioPitchStretchBoxAdapter | AudioTimeStretchBoxAdapter | AudioSignalsmithBoxAdapter;
7
8
  //# sourceMappingURL=AudioPlayMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AudioPlayMode.d.ts","sourceRoot":"","sources":["../../src/audio/AudioPlayMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,0BAA0B,EAAC,MAAM,8BAA8B,CAAA;AAEvE,yBAAiB,aAAa,CAAC;IACpB,MAAM,eAAe,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,aACqC,CAAA;CAChG;AAED,MAAM,MAAM,aAAa,GAAG,2BAA2B,GAAG,0BAA0B,CAAA"}
1
+ {"version":3,"file":"AudioPlayMode.d.ts","sourceRoot":"","sources":["../../src/audio/AudioPlayMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,0BAA0B,EAAC,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAC,0BAA0B,EAAC,MAAM,8BAA8B,CAAA;AAEvE,yBAAiB,aAAa,CAAC;IACpB,MAAM,eAAe,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,aAGP,CAAA;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,0BAA0B,CAAA"}
@@ -1,6 +1,9 @@
1
1
  import { AudioPitchStretchBoxAdapter } from "./AudioPitchStretchBoxAdapter";
2
2
  import { AudioTimeStretchBoxAdapter } from "./AudioTimeStretchBoxAdapter";
3
+ import { AudioSignalsmithBoxAdapter } from "./AudioSignalsmithBoxAdapter";
3
4
  export var AudioPlayMode;
4
5
  (function (AudioPlayMode) {
5
- AudioPlayMode.isAudioPlayMode = (mode) => mode instanceof AudioPitchStretchBoxAdapter || mode instanceof AudioTimeStretchBoxAdapter;
6
+ AudioPlayMode.isAudioPlayMode = (mode) => mode instanceof AudioPitchStretchBoxAdapter
7
+ || mode instanceof AudioTimeStretchBoxAdapter
8
+ || mode instanceof AudioSignalsmithBoxAdapter;
6
9
  })(AudioPlayMode || (AudioPlayMode = {}));
@@ -0,0 +1,24 @@
1
+ import { Observer, Subscription, UUID } from "@opendaw/lib-std";
2
+ import { Address } from "@opendaw/lib-box";
3
+ import { BoxAdaptersContext } from "../BoxAdaptersContext";
4
+ import { BoxAdapter } from "../BoxAdapter";
5
+ import { EventCollection } from "@opendaw/lib-dsp";
6
+ import { WarpMarkerBoxAdapter } from "./WarpMarkerBoxAdapter";
7
+ import { AudioSignalsmithBox } from "@opendaw/studio-boxes";
8
+ export declare class AudioSignalsmithBoxAdapter implements BoxAdapter {
9
+ #private;
10
+ constructor(context: BoxAdaptersContext, box: AudioSignalsmithBox);
11
+ get box(): AudioSignalsmithBox;
12
+ get uuid(): UUID.Bytes;
13
+ get address(): Address;
14
+ get warpMarkers(): EventCollection<WarpMarkerBoxAdapter>;
15
+ get transpose(): number;
16
+ set transpose(value: number);
17
+ get cents(): number;
18
+ set cents(value: number);
19
+ clone(): AudioSignalsmithBox;
20
+ subscribe(observer: Observer<void>): Subscription;
21
+ onChanged(): void;
22
+ terminate(): void;
23
+ }
24
+ //# sourceMappingURL=AudioSignalsmithBoxAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioSignalsmithBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio/AudioSignalsmithBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAa,YAAY,EAAc,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC9F,OAAO,EAAC,OAAO,EAAe,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAC,mBAAmB,EAAgB,MAAM,uBAAuB,CAAA;AAGxE,qBAAa,0BAA2B,YAAW,UAAU;;gBAU7C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAwBjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,WAAW,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAA2B;IAEnF,IAAI,SAAS,IAAI,MAAM,CAAwC;IAC/D,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAuC;IAGlE,IAAI,KAAK,IAAI,MAAM,CAAgD;IACnE,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAA+C;IAEtE,KAAK,IAAI,mBAAmB;IAW5B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IACjD,SAAS,IAAI,IAAI;IAEjB,SAAS,IAAI,IAAI;CACpB"}
@@ -0,0 +1,68 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _AudioSignalsmithBoxAdapter_terminator, _AudioSignalsmithBoxAdapter_context, _AudioSignalsmithBoxAdapter_box, _AudioSignalsmithBoxAdapter_notifer, _AudioSignalsmithBoxAdapter_warpMarkerAdapters, _AudioSignalsmithBoxAdapter_warpMarkers;
13
+ import { Notifier, Terminator, UUID } from "@opendaw/lib-std";
14
+ import { EventCollection } from "@opendaw/lib-dsp";
15
+ import { WarpMarkerBoxAdapter } from "./WarpMarkerBoxAdapter";
16
+ import { AudioSignalsmithBox, WarpMarkerBox } from "@opendaw/studio-boxes";
17
+ import { MarkerComparator } from "./MarkerComparator";
18
+ export class AudioSignalsmithBoxAdapter {
19
+ constructor(context, box) {
20
+ _AudioSignalsmithBoxAdapter_terminator.set(this, new Terminator());
21
+ _AudioSignalsmithBoxAdapter_context.set(this, void 0);
22
+ _AudioSignalsmithBoxAdapter_box.set(this, void 0);
23
+ _AudioSignalsmithBoxAdapter_notifer.set(this, void 0);
24
+ _AudioSignalsmithBoxAdapter_warpMarkerAdapters.set(this, void 0);
25
+ _AudioSignalsmithBoxAdapter_warpMarkers.set(this, void 0);
26
+ __classPrivateFieldSet(this, _AudioSignalsmithBoxAdapter_context, context, "f");
27
+ __classPrivateFieldSet(this, _AudioSignalsmithBoxAdapter_box, box, "f");
28
+ __classPrivateFieldSet(this, _AudioSignalsmithBoxAdapter_notifer, new Notifier(), "f");
29
+ __classPrivateFieldSet(this, _AudioSignalsmithBoxAdapter_warpMarkerAdapters, UUID.newSet(({ uuid }) => uuid), "f");
30
+ __classPrivateFieldSet(this, _AudioSignalsmithBoxAdapter_warpMarkers, EventCollection.create(MarkerComparator), "f");
31
+ __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_terminator, "f").ownAll(box.warpMarkers.pointerHub.catchupAndSubscribe({
32
+ onAdded: (pointer) => {
33
+ const marker = __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_context, "f").boxAdapters.adapterFor(pointer.box, WarpMarkerBoxAdapter);
34
+ if (__classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_warpMarkerAdapters, "f").add(marker)) {
35
+ __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_warpMarkers, "f").add(marker);
36
+ __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_notifer, "f").notify();
37
+ }
38
+ },
39
+ onRemoved: ({ box: { address: { uuid } } }) => {
40
+ __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_warpMarkers, "f").remove(__classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_warpMarkerAdapters, "f").removeByKey(uuid));
41
+ __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_notifer, "f").notify();
42
+ }
43
+ }));
44
+ }
45
+ get box() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f"); }
46
+ get uuid() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").address.uuid; }
47
+ get address() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").address; }
48
+ get warpMarkers() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_warpMarkers, "f"); }
49
+ get transpose() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").transpose.getValue(); }
50
+ set transpose(value) { __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").transpose.setValue(value); }
51
+ // The pitch shift expressed in cents (100 cents = 1 semitone), so the editor's cents input can drive it.
52
+ get cents() { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").transpose.getValue() * 100.0; }
53
+ set cents(value) { __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").transpose.setValue(value / 100.0); }
54
+ clone() {
55
+ const signalsmithBox = AudioSignalsmithBox.create(__classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").graph, UUID.generate());
56
+ signalsmithBox.transpose.setValue(__classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_box, "f").transpose.getValue());
57
+ this.warpMarkers.asArray().forEach(marker => WarpMarkerBox.create(signalsmithBox.graph, UUID.generate(), box => {
58
+ box.position.setValue(marker.position);
59
+ box.seconds.setValue(marker.seconds);
60
+ box.owner.refer(signalsmithBox.warpMarkers);
61
+ }));
62
+ return signalsmithBox;
63
+ }
64
+ subscribe(observer) { return __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_notifer, "f").subscribe(observer); }
65
+ onChanged() { __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_notifer, "f").notify(); }
66
+ terminate() { __classPrivateFieldGet(this, _AudioSignalsmithBoxAdapter_terminator, "f").terminate(); }
67
+ }
68
+ _AudioSignalsmithBoxAdapter_terminator = new WeakMap(), _AudioSignalsmithBoxAdapter_context = new WeakMap(), _AudioSignalsmithBoxAdapter_box = new WeakMap(), _AudioSignalsmithBoxAdapter_notifer = new WeakMap(), _AudioSignalsmithBoxAdapter_warpMarkerAdapters = new WeakMap(), _AudioSignalsmithBoxAdapter_warpMarkers = new WeakMap();
@@ -1,16 +1,19 @@
1
- import { Observer, Subscription, UUID } from "@opendaw/lib-std";
1
+ import { Observer, Selectable, Subscription, UUID } from "@opendaw/lib-std";
2
2
  import { Address } from "@opendaw/lib-box";
3
3
  import { Event } from "@opendaw/lib-dsp";
4
4
  import { TransientMarkerBox } from "@opendaw/studio-boxes";
5
5
  import { BoxAdapter } from "../BoxAdapter";
6
- export declare class TransientMarkerBoxAdapter implements BoxAdapter, Event {
6
+ export declare class TransientMarkerBoxAdapter implements BoxAdapter, Event, Selectable {
7
7
  #private;
8
8
  readonly type = "transient-marker";
9
9
  constructor(box: TransientMarkerBox);
10
+ onSelected(): void;
11
+ onDeselected(): void;
10
12
  get box(): TransientMarkerBox;
11
13
  get uuid(): UUID.Bytes;
12
14
  get address(): Address;
13
15
  get position(): number;
16
+ get isSelected(): boolean;
14
17
  subscribe(observer: Observer<void>): Subscription;
15
18
  terminate(): void;
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransientMarkerBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio/TransientMarkerBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,YAAY,EAAc,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAExC,qBAAa,yBAA0B,YAAW,UAAU,EAAE,KAAK;;IAC/D,QAAQ,CAAC,IAAI,sBAAqB;gBAMtB,GAAG,EAAE,kBAAkB;IAMnC,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,QAAQ,IAAI,MAAM,CAAuC;IAE7D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEjD,SAAS,IAAI,IAAI;CACpB"}
1
+ {"version":3,"file":"TransientMarkerBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio/TransientMarkerBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAc,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAC,OAAO,EAAc,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAExC,qBAAa,yBAA0B,YAAW,UAAU,EAAE,KAAK,EAAE,UAAU;;IAC3E,QAAQ,CAAC,IAAI,sBAAqB;gBAQtB,GAAG,EAAE,kBAAkB;IAOnC,UAAU,IAAI,IAAI;IAKlB,YAAY,IAAI,IAAI;IAKpB,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,QAAQ,IAAI,MAAM,CAAuC;IAC7D,IAAI,UAAU,IAAI,OAAO,CAA0B;IAEnD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAIjD,SAAS,IAAI,IAAI;CACpB"}
@@ -9,22 +9,35 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _TransientMarkerBoxAdapter_terminator, _TransientMarkerBoxAdapter_box, _TransientMarkerBoxAdapter_notifer;
12
+ var _TransientMarkerBoxAdapter_instances, _TransientMarkerBoxAdapter_terminator, _TransientMarkerBoxAdapter_box, _TransientMarkerBoxAdapter_notifer, _TransientMarkerBoxAdapter_isSelected, _TransientMarkerBoxAdapter_onChanged;
13
13
  import { Notifier, Terminator } from "@opendaw/lib-std";
14
+ import { Propagation } from "@opendaw/lib-box";
14
15
  export class TransientMarkerBoxAdapter {
15
16
  constructor(box) {
17
+ _TransientMarkerBoxAdapter_instances.add(this);
16
18
  this.type = "transient-marker";
17
19
  _TransientMarkerBoxAdapter_terminator.set(this, new Terminator());
18
20
  _TransientMarkerBoxAdapter_box.set(this, void 0);
19
21
  _TransientMarkerBoxAdapter_notifer.set(this, void 0);
22
+ _TransientMarkerBoxAdapter_isSelected.set(this, false);
20
23
  __classPrivateFieldSet(this, _TransientMarkerBoxAdapter_box, box, "f");
21
24
  __classPrivateFieldSet(this, _TransientMarkerBoxAdapter_notifer, new Notifier(), "f");
25
+ __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_terminator, "f").own(box.subscribe(Propagation.Children, () => __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_instances, "m", _TransientMarkerBoxAdapter_onChanged).call(this)));
26
+ }
27
+ onSelected() {
28
+ __classPrivateFieldSet(this, _TransientMarkerBoxAdapter_isSelected, true, "f");
29
+ __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_instances, "m", _TransientMarkerBoxAdapter_onChanged).call(this);
30
+ }
31
+ onDeselected() {
32
+ __classPrivateFieldSet(this, _TransientMarkerBoxAdapter_isSelected, false, "f");
33
+ __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_instances, "m", _TransientMarkerBoxAdapter_onChanged).call(this);
22
34
  }
23
35
  get box() { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_box, "f"); }
24
36
  get uuid() { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_box, "f").address.uuid; }
25
37
  get address() { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_box, "f").address; }
26
38
  get position() { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_box, "f").position.getValue(); }
39
+ get isSelected() { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_isSelected, "f"); }
27
40
  subscribe(observer) { return __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_notifer, "f").subscribe(observer); }
28
41
  terminate() { __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_terminator, "f").terminate(); }
29
42
  }
30
- _TransientMarkerBoxAdapter_terminator = new WeakMap(), _TransientMarkerBoxAdapter_box = new WeakMap(), _TransientMarkerBoxAdapter_notifer = new WeakMap();
43
+ _TransientMarkerBoxAdapter_terminator = new WeakMap(), _TransientMarkerBoxAdapter_box = new WeakMap(), _TransientMarkerBoxAdapter_notifer = new WeakMap(), _TransientMarkerBoxAdapter_isSelected = new WeakMap(), _TransientMarkerBoxAdapter_instances = new WeakSet(), _TransientMarkerBoxAdapter_onChanged = function _TransientMarkerBoxAdapter_onChanged() { __classPrivateFieldGet(this, _TransientMarkerBoxAdapter_notifer, "f").notify(); };
@@ -17,8 +17,8 @@ export declare class VocoderDeviceBoxAdapter implements AudioEffectDeviceAdapter
17
17
  readonly carrierMaxFreq: import("../..").AutomatableParameterFieldAdapter<number>;
18
18
  readonly modulatorMinFreq: import("../..").AutomatableParameterFieldAdapter<number>;
19
19
  readonly modulatorMaxFreq: import("../..").AutomatableParameterFieldAdapter<number>;
20
- readonly qMin: import("../..").AutomatableParameterFieldAdapter<number>;
21
- readonly qMax: import("../..").AutomatableParameterFieldAdapter<number>;
20
+ readonly qStart: import("../..").AutomatableParameterFieldAdapter<number>;
21
+ readonly qEnd: import("../..").AutomatableParameterFieldAdapter<number>;
22
22
  readonly envAttack: import("../..").AutomatableParameterFieldAdapter<number>;
23
23
  readonly envRelease: import("../..").AutomatableParameterFieldAdapter<number>;
24
24
  readonly gain: import("../..").AutomatableParameterFieldAdapter<number>;
@@ -59,8 +59,8 @@ _VocoderDeviceBoxAdapter_context = new WeakMap(), _VocoderDeviceBoxAdapter_box =
59
59
  carrierMaxFreq: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.carrierMaxFreq, freqMap, freqStr, "Carrier Max"),
60
60
  modulatorMinFreq: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.modulatorMinFreq, freqMap, freqStr, "Mod Min"),
61
61
  modulatorMaxFreq: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.modulatorMaxFreq, freqMap, freqStr, "Mod Max"),
62
- qMin: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.qMin, qMap, qStr, "Q Min"),
63
- qMax: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.qMax, qMap, qStr, "Q Max"),
62
+ qStart: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.qStart, qMap, qStr, "Q Start"),
63
+ qEnd: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.qEnd, qMap, qStr, "Q End"),
64
64
  envAttack: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.envAttack, ValueMapping.exponential(0.1, 100.0), StringMapping.numeric({ unit: "ms", fractionDigits: 1 }), "Attack"),
65
65
  envRelease: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.envRelease, ValueMapping.exponential(1.0, 1000.0), StringMapping.numeric({ unit: "ms", fractionDigits: 0 }), "Release"),
66
66
  gain: __classPrivateFieldGet(this, _VocoderDeviceBoxAdapter_parametric, "f").createParameter(box.gain, ValueMapping.linear(-20.0, 20.0), StringMapping.decible, "Gain"),
package/dist/index.d.ts CHANGED
@@ -46,6 +46,7 @@ export * from "./audio-unit/AuxSendBoxAdapter";
46
46
  export * from "./audio/AudioFileBoxAdapter";
47
47
  export * from "./audio/AudioPitchStretchBoxAdapter";
48
48
  export * from "./audio/AudioPlayMode";
49
+ export * from "./audio/AudioSignalsmithBoxAdapter";
49
50
  export * from "./audio/AudioTimeStretchBoxAdapter";
50
51
  export * from "./audio/MarkerComparator";
51
52
  export * from "./audio/TransientMarkerBoxAdapter";
@@ -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 "./audio-unit/AuxSendBoxAdapter";
48
48
  export * from "./audio/AudioFileBoxAdapter";
49
49
  export * from "./audio/AudioPitchStretchBoxAdapter";
50
50
  export * from "./audio/AudioPlayMode";
51
+ export * from "./audio/AudioSignalsmithBoxAdapter";
51
52
  export * from "./audio/AudioTimeStretchBoxAdapter";
52
53
  export * from "./audio/MarkerComparator";
53
54
  export * from "./audio/TransientMarkerBoxAdapter";
@@ -1 +1 @@
1
- {"version":3,"file":"PresetDecoder.d.ts","sourceRoot":"","sources":["../../src/preset/PresetDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAGP,GAAG,EAQN,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAEH,YAAY,EAOf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAG3C,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,aAAa,CAAC,YAAY,CAqElG,CAAA;IAEM,MAAM,eAAe,GAAI,aAAa,WAAW,KAAG,OAY1D,CAAA;IAEM,MAAM,gBAAgB,GAAI,aAAa,WAAW,EAAE,oBAAoB,YAAY,EAAE,UAAU;QACnG,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;KACzB,KAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAsHvB,CAAA;IAEM,MAAM,iBAAiB,GAC1B,OAAO,eAAe,EACtB,iBAAiB,YAAY,EAC7B,aAAa,GAAG,EAChB,MAAM,YAAY,CAAC,SAAS,KAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,CA+FtB,CAAA;CACJ"}
1
+ {"version":3,"file":"PresetDecoder.d.ts","sourceRoot":"","sources":["../../src/preset/PresetDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAGP,GAAG,EAQN,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAEH,YAAY,EAOf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAG3C,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,aAAa,CAAC,YAAY,CAqElG,CAAA;IAEM,MAAM,eAAe,GAAI,aAAa,WAAW,KAAG,OAY1D,CAAA;IAEM,MAAM,gBAAgB,GAAI,aAAa,WAAW,EAAE,oBAAoB,YAAY,EAAE,UAAU;QACnG,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;KACzB,KAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAsHvB,CAAA;IAEM,MAAM,iBAAiB,GAC1B,OAAO,eAAe,EACtB,iBAAiB,YAAY,EAC7B,aAAa,GAAG,EAChB,MAAM,YAAY,CAAC,SAAS,KAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,CAgGtB,CAAA;CACJ"}
@@ -221,6 +221,9 @@ export var PresetDecoder;
221
221
  return Attempts.Ok;
222
222
  };
223
223
  PresetDecoder.insertEffectChain = (bytes, targetAudioUnit, insertIndex, kind) => {
224
+ if (bytes.byteLength < 8) {
225
+ return Attempts.err("Invalid preset header");
226
+ }
224
227
  const headerInput = new ByteArrayInput(bytes.slice(0, 8));
225
228
  if (headerInput.readInt() !== PresetHeader.MAGIC_HEADER_OPEN) {
226
229
  return Attempts.err("Invalid preset header");
@@ -5,6 +5,7 @@ import { AudioPlayMode } from "../audio/AudioPlayMode";
5
5
  import { AudioFileBoxAdapter } from "../audio/AudioFileBoxAdapter";
6
6
  import { AudioTimeStretchBoxAdapter } from "../audio/AudioTimeStretchBoxAdapter";
7
7
  import { AudioPitchStretchBoxAdapter } from "../audio/AudioPitchStretchBoxAdapter";
8
+ import { AudioSignalsmithBoxAdapter } from "../audio/AudioSignalsmithBoxAdapter";
8
9
  import { WarpMarkerBoxAdapter } from "../audio/WarpMarkerBoxAdapter";
9
10
  import { AudioClipBox, AudioRegionBox } from "@opendaw/studio-boxes";
10
11
  export interface AudioContentBoxAdapter extends BoxAdapter {
@@ -17,6 +18,7 @@ export interface AudioContentBoxAdapter extends BoxAdapter {
17
18
  get isPlayModeNoStretch(): boolean;
18
19
  get asPlayModePitchStretch(): Option<AudioPitchStretchBoxAdapter>;
19
20
  get asPlayModeTimeStretch(): Option<AudioTimeStretchBoxAdapter>;
21
+ get asPlayModeSignalsmith(): Option<AudioSignalsmithBoxAdapter>;
20
22
  get optWarpMarkers(): Option<EventCollection<WarpMarkerBoxAdapter>>;
21
23
  get canResize(): boolean;
22
24
  get gain(): MutableObservableValue<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContentBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/AudioContentBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACtD,IAAI,IAAI,IAAI,mBAAmB,CAAA;IAC/B,IAAI,OAAO,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,QAAQ,IAAI,IAAI,CAAA;IACpB,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC5D,IAAI,cAAc,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,mBAAmB,IAAI,OAAO,CAAA;IAClC,IAAI,sBAAsB,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACjE,IAAI,qBAAqB,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACnE,IAAI,SAAS,IAAI,OAAO,CAAA;IACxB,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,GAAG,IAAI,YAAY,GAAG,cAAc,CAAA;CAC3C"}
1
+ {"version":3,"file":"AudioContentBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/timeline/AudioContentBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACtD,IAAI,IAAI,IAAI,mBAAmB,CAAA;IAC/B,IAAI,OAAO,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAA;IACxB,IAAI,QAAQ,IAAI,IAAI,CAAA;IACpB,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC5D,IAAI,cAAc,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,mBAAmB,IAAI,OAAO,CAAA;IAClC,IAAI,sBAAsB,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACjE,IAAI,qBAAqB,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,qBAAqB,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACnE,IAAI,SAAS,IAAI,OAAO,CAAA;IACxB,IAAI,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,GAAG,IAAI,YAAY,GAAG,cAAc,CAAA;CAC3C"}
@@ -10,6 +10,7 @@ import { AudioContentBoxAdapter } from "../AudioContentBoxAdapter";
10
10
  import { AudioPlayMode } from "../../audio/AudioPlayMode";
11
11
  import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
12
12
  import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
13
+ import { AudioSignalsmithBoxAdapter } from "../../audio/AudioSignalsmithBoxAdapter";
13
14
  import { WarpMarkerBoxAdapter } from "../../audio/WarpMarkerBoxAdapter";
14
15
  export declare class AudioClipBoxAdapter implements AudioContentBoxAdapter, ClipBoxAdapter<never> {
15
16
  #private;
@@ -42,6 +43,7 @@ export declare class AudioClipBoxAdapter implements AudioContentBoxAdapter, Clip
42
43
  get isPlayModeNoStretch(): boolean;
43
44
  get asPlayModePitchStretch(): Option<AudioPitchStretchBoxAdapter>;
44
45
  get asPlayModeTimeStretch(): Option<AudioTimeStretchBoxAdapter>;
46
+ get asPlayModeSignalsmith(): Option<AudioSignalsmithBoxAdapter>;
45
47
  get optWarpMarkers(): Option<EventCollection<WarpMarkerBoxAdapter>>;
46
48
  get label(): string;
47
49
  get trackBoxAdapter(): Option<TrackBoxAdapter>;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioClipBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/clip/AudioClipBoxAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioClipBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/clip/AudioClipBoxAdapter.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { AudioFileBoxAdapter } from "../../audio/AudioFileBoxAdapter";
19
19
  import { AudioPlayMode } from "../../audio/AudioPlayMode";
20
20
  import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
21
21
  import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
22
+ import { AudioSignalsmithBoxAdapter } from "../../audio/AudioSignalsmithBoxAdapter";
22
23
  export class AudioClipBoxAdapter {
23
24
  constructor(context, box) {
24
25
  _AudioClipBoxAdapter_instances.add(this);
@@ -110,6 +111,9 @@ export class AudioClipBoxAdapter {
110
111
  get asPlayModeTimeStretch() {
111
112
  return this.observableOptPlayMode.map(mode => isInstanceOf(mode, AudioTimeStretchBoxAdapter) ? mode : null);
112
113
  }
114
+ get asPlayModeSignalsmith() {
115
+ return this.observableOptPlayMode.map(mode => isInstanceOf(mode, AudioSignalsmithBoxAdapter) ? mode : null);
116
+ }
113
117
  get optWarpMarkers() {
114
118
  return this.observableOptPlayMode.map(mode => AudioPlayMode.isAudioPlayMode(mode) ? mode.warpMarkers : null);
115
119
  }
@@ -13,6 +13,7 @@ import { AudioContentBoxAdapter } from "../AudioContentBoxAdapter";
13
13
  import { AudioPlayMode } from "../../audio/AudioPlayMode";
14
14
  import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
15
15
  import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
16
+ import { AudioSignalsmithBoxAdapter } from "../../audio/AudioSignalsmithBoxAdapter";
16
17
  import { WarpMarkerBoxAdapter } from "../../audio/WarpMarkerBoxAdapter";
17
18
  import { FadingAdapter } from "./FadingAdapter";
18
19
  import { NoteRegionBoxAdapter } from "./NoteRegionBoxAdapter";
@@ -61,6 +62,7 @@ export declare class AudioRegionBoxAdapter implements AudioContentBoxAdapter, Lo
61
62
  get isPlayModeNoStretch(): boolean;
62
63
  get asPlayModePitchStretch(): Option<AudioPitchStretchBoxAdapter>;
63
64
  get asPlayModeTimeStretch(): Option<AudioTimeStretchBoxAdapter>;
65
+ get asPlayModeSignalsmith(): Option<AudioSignalsmithBoxAdapter>;
64
66
  get optWarpMarkers(): Option<EventCollection<WarpMarkerBoxAdapter>>;
65
67
  get label(): string;
66
68
  get isMirrowed(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioRegionBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/timeline/region/AudioRegionBoxAdapter.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { ValueEventCollectionBoxAdapter } from "../collection/ValueEventCollecti
20
20
  import { AudioPlayMode } from "../../audio/AudioPlayMode";
21
21
  import { AudioPitchStretchBoxAdapter } from "../../audio/AudioPitchStretchBoxAdapter";
22
22
  import { AudioTimeStretchBoxAdapter } from "../../audio/AudioTimeStretchBoxAdapter";
23
+ import { AudioSignalsmithBoxAdapter } from "../../audio/AudioSignalsmithBoxAdapter";
23
24
  import { FadingAdapter } from "./FadingAdapter";
24
25
  export class AudioRegionBoxAdapter {
25
26
  constructor(context, box) {
@@ -155,6 +156,9 @@ export class AudioRegionBoxAdapter {
155
156
  get asPlayModeTimeStretch() {
156
157
  return this.observableOptPlayMode.map(mode => isInstanceOf(mode, AudioTimeStretchBoxAdapter) ? mode : null);
157
158
  }
159
+ get asPlayModeSignalsmith() {
160
+ return this.observableOptPlayMode.map(mode => isInstanceOf(mode, AudioSignalsmithBoxAdapter) ? mode : null);
161
+ }
158
162
  get optWarpMarkers() {
159
163
  return this.observableOptPlayMode.map(mode => AudioPlayMode.isAudioPlayMode(mode) ? mode.warpMarkers : null);
160
164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.119",
3
+ "version": "0.1.0",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,19 +25,19 @@
25
25
  "pregenerate-all-boxes": "npm run build -w @opendaw/studio-forge-boxes && npm run build -w @opendaw/studio-boxes"
26
26
  },
27
27
  "dependencies": {
28
- "@opendaw/lib-box": "^0.0.88",
29
- "@opendaw/lib-dsp": "^0.0.86",
30
- "@opendaw/lib-fusion": "^0.0.96",
31
- "@opendaw/lib-midi": "^0.0.68",
32
- "@opendaw/lib-runtime": "^0.0.81",
33
- "@opendaw/lib-std": "^0.0.80",
34
- "@opendaw/studio-boxes": "^0.0.96",
35
- "@opendaw/studio-enums": "^0.0.79",
28
+ "@opendaw/lib-box": "^0.0.90",
29
+ "@opendaw/lib-dsp": "^0.0.88",
30
+ "@opendaw/lib-fusion": "^0.0.98",
31
+ "@opendaw/lib-midi": "^0.0.70",
32
+ "@opendaw/lib-runtime": "^0.0.83",
33
+ "@opendaw/lib-std": "^0.0.82",
34
+ "@opendaw/studio-boxes": "^0.0.98",
35
+ "@opendaw/studio-enums": "^0.0.81",
36
36
  "soundfont2": "^0.5.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@opendaw/eslint-config": "^0.0.28",
40
40
  "@opendaw/typescript-config": "^0.0.32"
41
41
  },
42
- "gitHead": "39217ab3e0c5e488cb21ca20e1fcd673e6f60142"
42
+ "gitHead": "2b6f638ff4d6d25f2e8c580822407bd6eea03b46"
43
43
  }