@opendaw/studio-core 0.0.125 → 0.0.127
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/AssetService.d.ts +3 -3
- package/dist/AssetService.d.ts.map +1 -1
- package/dist/AssetService.js +7 -7
- package/dist/AudioConsolidation.d.ts.map +1 -1
- package/dist/AudioConsolidation.js +2 -2
- package/dist/EffectBox.d.ts +2 -2
- package/dist/EffectBox.d.ts.map +1 -1
- package/dist/EffectFactories.d.ts +20 -14
- package/dist/EffectFactories.d.ts.map +1 -1
- package/dist/EffectFactories.js +88 -20
- package/dist/EffectFactory.d.ts +1 -0
- package/dist/EffectFactory.d.ts.map +1 -1
- package/dist/Engine.d.ts +2 -1
- package/dist/Engine.d.ts.map +1 -1
- package/dist/EngineFacade.d.ts +2 -1
- package/dist/EngineFacade.d.ts.map +1 -1
- package/dist/EngineFacade.js +3 -0
- package/dist/EngineWorklet.d.ts +2 -1
- package/dist/EngineWorklet.d.ts.map +1 -1
- package/dist/EngineWorklet.js +11 -1
- package/dist/Mixer.d.ts.map +1 -1
- package/dist/Mixer.js +3 -2
- package/dist/OfflineEngineRenderer.d.ts.map +1 -1
- package/dist/OfflineEngineRenderer.js +41 -3
- package/dist/capture/RecordAudio.d.ts.map +1 -1
- package/dist/capture/RecordAudio.js +48 -18
- package/dist/capture/RecordAutomation.d.ts.map +1 -1
- package/dist/capture/RecordAutomation.js +219 -198
- package/dist/capture/RecordMidi.d.ts.map +1 -1
- package/dist/capture/RecordMidi.js +1 -1
- package/dist/cloud/CloudBackupSamples.js +1 -1
- package/dist/dawproject/DawProjectExporter.js +1 -1
- package/dist/dawproject/DawProjectService.d.ts.map +1 -1
- package/dist/dawproject/DawProjectService.js +3 -16
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/midi/MidiDevices.d.ts.map +1 -1
- package/dist/midi/MidiDevices.js +8 -2
- package/dist/offline-engine.js +1 -1
- package/dist/offline-engine.js.map +3 -3
- package/dist/processors.js +37 -25
- package/dist/processors.js.map +4 -4
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +27 -2
- package/dist/project/Recovery.js +1 -1
- package/dist/project/migration/MigrateAudioClipBox.d.ts.map +1 -1
- package/dist/project/migration/MigrateAudioClipBox.js +7 -0
- package/dist/project/migration/MigrateAudioRegionBox.d.ts.map +1 -1
- package/dist/project/migration/MigrateAudioRegionBox.js +7 -0
- package/dist/samples/OpenSampleAPI.d.ts.map +1 -1
- package/dist/samples/OpenSampleAPI.js +1 -1
- package/dist/samples/SampleService.d.ts +1 -1
- package/dist/samples/SampleService.d.ts.map +1 -1
- package/dist/samples/SampleService.js +2 -2
- package/dist/samples/SampleStorage.d.ts.map +1 -1
- package/dist/samples/SampleStorage.js +1 -1
- package/dist/soundfont/SoundfontService.d.ts +1 -1
- package/dist/soundfont/SoundfontService.d.ts.map +1 -1
- package/dist/soundfont/SoundfontService.js +1 -1
- package/dist/ui/clipboard/ClipboardManager.d.ts.map +1 -1
- package/dist/ui/clipboard/ClipboardManager.js +18 -4
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.js +2 -2
- package/dist/ui/clipboard/types/DevicesClipboardHandler.d.ts.map +1 -1
- package/dist/ui/clipboard/types/DevicesClipboardHandler.js +61 -9
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts +2 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.d.ts.map +1 -0
- package/dist/ui/clipboard/types/DevicesClipboardHandler.test.js +976 -0
- package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.js +21 -29
- package/dist/ui/timeline/TimeGrid.d.ts +2 -0
- package/dist/ui/timeline/TimeGrid.d.ts.map +1 -1
- package/dist/ui/timeline/TimeGrid.js +13 -1
- package/dist/workers-main.js +1 -1
- package/dist/workers-main.js.map +3 -3
- package/dist/ysync/YService.d.ts +6 -1
- package/dist/ysync/YService.d.ts.map +1 -1
- package/dist/ysync/YService.js +2 -2
- package/package.json +15 -15
- package/dist/WavFile.d.ts +0 -7
- package/dist/WavFile.d.ts.map +0 -1
- package/dist/WavFile.js +0 -120
package/dist/AssetService.d.ts
CHANGED
|
@@ -12,13 +12,13 @@ export declare namespace AssetService {
|
|
|
12
12
|
origin?: "import" | "recording";
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
export declare abstract class AssetService<T extends Sample | Soundfont> {
|
|
15
|
+
export declare abstract class AssetService<T extends Sample | Soundfont, RAW = void> {
|
|
16
16
|
protected abstract readonly nameSingular: string;
|
|
17
17
|
protected abstract readonly namePlural: string;
|
|
18
18
|
protected abstract readonly boxType: Class<AudioFileBox | SoundfontFileBox>;
|
|
19
19
|
protected abstract readonly filePickerOptions: FilePickerOptions;
|
|
20
|
-
protected readonly notifier: Notifier<T>;
|
|
21
|
-
subscribe(observer: Observer<T>): Subscription;
|
|
20
|
+
protected readonly notifier: Notifier<[T, RAW]>;
|
|
21
|
+
subscribe(observer: Observer<[T, RAW]>): Subscription;
|
|
22
22
|
browse(multiple: boolean): Promise<ReadonlyArray<T>>;
|
|
23
23
|
abstract importFile(args: AssetService.ImportArgs): Promise<T>;
|
|
24
24
|
replaceMissingFiles(boxGraph: BoxGraph, manager: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetService.d.ts","sourceRoot":"","sources":["../src/AssetService.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAKL,QAAQ,EACR,QAAQ,EAER,QAAQ,EAER,YAAY,EACZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG;QACrB,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;QACnC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;KAClC,CAAA;CACJ;AAED,8BAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"AssetService.d.ts","sourceRoot":"","sources":["../src/AssetService.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAKL,QAAQ,EACR,QAAQ,EAER,QAAQ,EAER,YAAY,EACZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG;QACrB,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;QACnC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;KAClC,CAAA;CACJ;AAED,8BAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,GAAG,GAAG,IAAI;IACvE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAA;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAEhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAA2B;IAE1E,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,YAAY;IAE/C,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI1D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAExD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;QAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAyCjG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAuChH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAClE"}
|
package/dist/AssetService.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultObservableValue, Errors, isInstanceOf, isNotUndefined, Notifier,
|
|
1
|
+
import { DefaultObservableValue, Errors, isInstanceOf, isNotUndefined, Notifier, Progress, RuntimeNotifier, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { Files } from "@opendaw/lib-dom";
|
|
3
3
|
import { Promises } from "@opendaw/lib-runtime";
|
|
4
4
|
export class AssetService {
|
|
@@ -33,9 +33,9 @@ export class AssetService {
|
|
|
33
33
|
if (Errors.isAbort(error) || Errors.isNotAllowed(error)) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
console.warn(`File browse failed: ${error}`);
|
|
37
|
+
await RuntimeNotifier.info({ headline: "File Access Error", message: String(error) });
|
|
38
|
+
return;
|
|
39
39
|
}
|
|
40
40
|
if (files.length === 0) {
|
|
41
41
|
return;
|
|
@@ -62,9 +62,9 @@ export class AssetService {
|
|
|
62
62
|
if (Errors.isAbort(error) || Errors.isNotAllowed(error)) {
|
|
63
63
|
return [];
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
console.warn(`File browse failed: ${error}`);
|
|
66
|
+
await RuntimeNotifier.info({ headline: "File Access Error", message: String(error) });
|
|
67
|
+
return [];
|
|
68
68
|
}
|
|
69
69
|
const progress = new DefaultObservableValue(0.0);
|
|
70
70
|
const dialog = RuntimeNotifier.progress({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioConsolidation.d.ts","sourceRoot":"","sources":["../src/AudioConsolidation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,qBAAqB,EAA2B,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAIH,OAAO,EACP,aAAa,
|
|
1
|
+
{"version":3,"file":"AudioConsolidation.d.ts","sourceRoot":"","sources":["../src/AudioConsolidation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,qBAAqB,EAA2B,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAIH,OAAO,EACP,aAAa,EAEhB,MAAM,SAAS,CAAA;AAEhB,yBAAiB,kBAAkB,CAAC;IACzB,MAAM,OAAO,GAAU,SAAS,OAAO,EAChB,eAAe,aAAa,EAC5B,SAAS,aAAa,CAAC,qBAAqB,CAAC,EAC7C,cAAc,WAAW,KAAG,OAAO,CAAC,IAAI,CAwFrE,CAAA;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Arrays, Errors, isDefined, Option, RuntimeNotifier, UUID } from "@opendaw/lib-std";
|
|
2
|
-
import { AudioData, RegionCollection } from "@opendaw/lib-dsp";
|
|
2
|
+
import { AudioData, RegionCollection, WavFile } from "@opendaw/lib-dsp";
|
|
3
3
|
import { Promises } from "@opendaw/lib-runtime";
|
|
4
|
-
import { AudioContentFactory, AudioFileBoxFactory, OfflineEngineRenderer,
|
|
4
|
+
import { AudioContentFactory, AudioFileBoxFactory, OfflineEngineRenderer, Workers } from "./index";
|
|
5
5
|
export var AudioConsolidation;
|
|
6
6
|
(function (AudioConsolidation) {
|
|
7
7
|
AudioConsolidation.flatten = async (project, sampleService, regions, abortSignal) => {
|
package/dist/EffectBox.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ArpeggioDeviceBox, MaximizerDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DattorroReverbDeviceBox, DelayDeviceBox, FoldDeviceBox, GateDeviceBox, ModularDeviceBox, NeuralAmpDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, TidalDeviceBox, UnknownAudioEffectDeviceBox, UnknownMidiEffectDeviceBox, VelocityDeviceBox, WaveshaperDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
|
|
2
|
-
export type EffectBox = ArpeggioDeviceBox | PitchDeviceBox | VelocityDeviceBox | ZeitgeistDeviceBox | UnknownMidiEffectDeviceBox | MaximizerDeviceBox | DelayDeviceBox | ReverbDeviceBox | RevampDeviceBox | StereoToolDeviceBox | TidalDeviceBox | ModularDeviceBox | UnknownAudioEffectDeviceBox | CompressorDeviceBox | GateDeviceBox | CrusherDeviceBox | FoldDeviceBox | DattorroReverbDeviceBox | NeuralAmpDeviceBox | WaveshaperDeviceBox;
|
|
1
|
+
import { ArpeggioDeviceBox, MaximizerDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DattorroReverbDeviceBox, DelayDeviceBox, FoldDeviceBox, GateDeviceBox, ModularDeviceBox, NeuralAmpDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, TidalDeviceBox, UnknownAudioEffectDeviceBox, UnknownMidiEffectDeviceBox, VelocityDeviceBox, WaveshaperDeviceBox, SpielwerkDeviceBox, WerkstattDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
|
|
2
|
+
export type EffectBox = ArpeggioDeviceBox | PitchDeviceBox | VelocityDeviceBox | ZeitgeistDeviceBox | UnknownMidiEffectDeviceBox | SpielwerkDeviceBox | MaximizerDeviceBox | DelayDeviceBox | ReverbDeviceBox | RevampDeviceBox | StereoToolDeviceBox | TidalDeviceBox | ModularDeviceBox | UnknownAudioEffectDeviceBox | CompressorDeviceBox | GateDeviceBox | CrusherDeviceBox | FoldDeviceBox | DattorroReverbDeviceBox | NeuralAmpDeviceBox | WaveshaperDeviceBox | WerkstattDeviceBox;
|
|
3
3
|
//# sourceMappingURL=EffectBox.d.ts.map
|
package/dist/EffectBox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectBox.d.ts","sourceRoot":"","sources":["../src/EffectBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,SAAS,GACf,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,0BAA0B,GACxG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,cAAc,GAC9G,gBAAgB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,aAAa,GACpF,gBAAgB,GAAG,aAAa,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"EffectBox.d.ts","sourceRoot":"","sources":["../src/EffectBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,SAAS,GACf,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,0BAA0B,GACxG,kBAAkB,GAClB,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,cAAc,GAC9G,gBAAgB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,aAAa,GACpF,gBAAgB,GAAG,aAAa,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,mBAAmB,GACrG,kBAAkB,CAAA"}
|
|
@@ -4,6 +4,7 @@ export declare namespace EffectFactories {
|
|
|
4
4
|
const Pitch: EffectFactory;
|
|
5
5
|
const Velocity: EffectFactory;
|
|
6
6
|
const Zeitgeist: EffectFactory;
|
|
7
|
+
const Spielwerk: EffectFactory;
|
|
7
8
|
const StereoTool: EffectFactory;
|
|
8
9
|
const Delay: EffectFactory;
|
|
9
10
|
const DattorroReverb: EffectFactory;
|
|
@@ -17,46 +18,51 @@ export declare namespace EffectFactories {
|
|
|
17
18
|
const Tidal: EffectFactory;
|
|
18
19
|
const Revamp: EffectFactory;
|
|
19
20
|
const NeuralAmp: EffectFactory;
|
|
21
|
+
const Werkstatt: EffectFactory;
|
|
20
22
|
const Modular: EffectFactory;
|
|
21
23
|
const MidiNamed: {
|
|
22
24
|
Arpeggio: EffectFactory;
|
|
23
25
|
Pitch: EffectFactory;
|
|
26
|
+
Spielwerk: EffectFactory;
|
|
24
27
|
Velocity: EffectFactory;
|
|
25
28
|
Zeitgeist: EffectFactory;
|
|
26
29
|
};
|
|
27
30
|
const AudioNamed: {
|
|
28
|
-
StereoTool: EffectFactory;
|
|
29
31
|
Compressor: EffectFactory;
|
|
30
|
-
|
|
32
|
+
Crusher: EffectFactory;
|
|
33
|
+
DattorroReverb: EffectFactory;
|
|
31
34
|
Delay: EffectFactory;
|
|
35
|
+
Fold: EffectFactory;
|
|
32
36
|
Reverb: EffectFactory;
|
|
33
|
-
|
|
37
|
+
Gate: EffectFactory;
|
|
38
|
+
Maximizer: EffectFactory;
|
|
34
39
|
Revamp: EffectFactory;
|
|
35
|
-
|
|
36
|
-
Fold: EffectFactory;
|
|
37
|
-
Waveshaper: EffectFactory;
|
|
40
|
+
StereoTool: EffectFactory;
|
|
38
41
|
Tidal: EffectFactory;
|
|
39
42
|
NeuralAmp: EffectFactory;
|
|
40
|
-
|
|
43
|
+
Waveshaper: EffectFactory;
|
|
44
|
+
Werkstatt: EffectFactory;
|
|
41
45
|
};
|
|
42
46
|
const MidiList: ReadonlyArray<Readonly<EffectFactory>>;
|
|
43
47
|
const AudioList: ReadonlyArray<Readonly<EffectFactory>>;
|
|
44
48
|
const MergedNamed: {
|
|
45
|
-
StereoTool: EffectFactory;
|
|
46
49
|
Compressor: EffectFactory;
|
|
47
|
-
|
|
50
|
+
Crusher: EffectFactory;
|
|
51
|
+
DattorroReverb: EffectFactory;
|
|
48
52
|
Delay: EffectFactory;
|
|
53
|
+
Fold: EffectFactory;
|
|
49
54
|
Reverb: EffectFactory;
|
|
50
|
-
|
|
55
|
+
Gate: EffectFactory;
|
|
56
|
+
Maximizer: EffectFactory;
|
|
51
57
|
Revamp: EffectFactory;
|
|
52
|
-
|
|
53
|
-
Fold: EffectFactory;
|
|
54
|
-
Waveshaper: EffectFactory;
|
|
58
|
+
StereoTool: EffectFactory;
|
|
55
59
|
Tidal: EffectFactory;
|
|
56
60
|
NeuralAmp: EffectFactory;
|
|
57
|
-
|
|
61
|
+
Waveshaper: EffectFactory;
|
|
62
|
+
Werkstatt: EffectFactory;
|
|
58
63
|
Arpeggio: EffectFactory;
|
|
59
64
|
Pitch: EffectFactory;
|
|
65
|
+
Spielwerk: EffectFactory;
|
|
60
66
|
Velocity: EffectFactory;
|
|
61
67
|
Zeitgeist: EffectFactory;
|
|
62
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAG7C,yBAAiB,eAAe,CAAC;IACtB,MAAM,QAAQ,EAAE,aAetB,CAAA;IAEM,MAAM,KAAK,EAAE,aAenB,CAAA;IAEM,MAAM,QAAQ,EAAE,aAetB,CAAA;IAEM,MAAM,SAAS,EAAE,aAgCvB,CAAA;IAEM,MAAM,SAAS,EAAE,aAevB,CAAA;IAEM,MAAM,UAAU,EAAE,aAexB,CAAA;IAEM,MAAM,KAAK,EAAE,aAgBnB,CAAA;IAEM,MAAM,cAAc,EAAE,aAe5B,CAAA;IAEM,MAAM,SAAS,EAAE,aAevB,CAAA;IAEM,MAAM,UAAU,EAAE,aAexB,CAAA;IAEM,MAAM,IAAI,EAAE,aAelB,CAAA;IAEM,MAAM,MAAM,EAAE,aAgBpB,CAAA;IAEM,MAAM,OAAO,EAAE,aAerB,CAAA;IAEM,MAAM,IAAI,EAAE,aAelB,CAAA;IAEM,MAAM,UAAU,EAAE,aAexB,CAAA;IAEM,MAAM,KAAK,EAAE,aAgBnB,CAAA;IAEM,MAAM,MAAM,EAAE,aAepB,CAAA;IAEM,MAAM,SAAS,EAAE,aAevB,CAAA;IAEM,MAAM,SAAS,EAAE,aAevB,CAAA;IAEM,MAAM,OAAO,EAAE,aAmDrB,CAAA;IAEM,MAAM,SAAS;;;;;;KAMrB,CAAA;IAEM,MAAM,UAAU;;;;;;;;;;;;;;;KAetB,CAAA;IACM,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAChC,CAAA;IACrB,MAAM,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAChC,CAAA;IACtB,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;KAAgC,CAAA;IACxD,KAAY,cAAc,GAAG,MAAM,OAAO,SAAS,CAAA;IACnD,KAAY,eAAe,GAAG,MAAM,OAAO,UAAU,CAAA;CACxD"}
|
package/dist/EffectFactories.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UUID } from "@opendaw/lib-std";
|
|
2
|
-
import { ArpeggioDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DattorroReverbDeviceBox, DelayDeviceBox, FoldDeviceBox, GateDeviceBox, GrooveShuffleBox, MaximizerDeviceBox, ModularAudioInputBox, ModularAudioOutputBox, ModularBox, ModularDeviceBox, ModuleConnectionBox, NeuralAmpDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, TidalDeviceBox, VelocityDeviceBox, WaveshaperDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
|
|
2
|
+
import { ArpeggioDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DattorroReverbDeviceBox, DelayDeviceBox, FoldDeviceBox, GateDeviceBox, GrooveShuffleBox, MaximizerDeviceBox, ModularAudioInputBox, ModularAudioOutputBox, ModularBox, ModularDeviceBox, ModuleConnectionBox, NeuralAmpDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, TidalDeviceBox, SpielwerkDeviceBox, VelocityDeviceBox, WaveshaperDeviceBox, WerkstattDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
|
|
3
3
|
import { IconSymbol } from "@opendaw/studio-enums";
|
|
4
4
|
import { DeviceManualUrls } from "@opendaw/studio-adapters";
|
|
5
5
|
import { EffectParameterDefaults } from "./EffectParameterDefaults";
|
|
@@ -8,9 +8,11 @@ export var EffectFactories;
|
|
|
8
8
|
EffectFactories.Arpeggio = {
|
|
9
9
|
defaultName: "Arpeggio",
|
|
10
10
|
defaultIcon: IconSymbol.Stack,
|
|
11
|
+
briefDescription: "Arpeggiator",
|
|
11
12
|
description: "Generates rhythmic note sequences from chords",
|
|
12
13
|
manualPage: DeviceManualUrls.Arpeggio,
|
|
13
14
|
separatorBefore: false,
|
|
15
|
+
external: false,
|
|
14
16
|
type: "midi",
|
|
15
17
|
create: ({ boxGraph }, hostField, index) => ArpeggioDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
16
18
|
box.label.setValue("Arpeggio");
|
|
@@ -21,9 +23,11 @@ export var EffectFactories;
|
|
|
21
23
|
EffectFactories.Pitch = {
|
|
22
24
|
defaultName: "Pitch",
|
|
23
25
|
defaultIcon: IconSymbol.Note,
|
|
26
|
+
briefDescription: "Pitch Transformer",
|
|
24
27
|
description: "Shifts the pitch of incoming notes",
|
|
25
28
|
manualPage: DeviceManualUrls.Pitch,
|
|
26
29
|
separatorBefore: false,
|
|
30
|
+
external: false,
|
|
27
31
|
type: "midi",
|
|
28
32
|
create: ({ boxGraph }, hostField, index) => PitchDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
29
33
|
box.label.setValue("Pitch");
|
|
@@ -34,9 +38,11 @@ export var EffectFactories;
|
|
|
34
38
|
EffectFactories.Velocity = {
|
|
35
39
|
defaultName: "Velocity",
|
|
36
40
|
defaultIcon: IconSymbol.Velocity,
|
|
41
|
+
briefDescription: "Velocity Transformer",
|
|
37
42
|
description: "Manipulates the velocity of incoming notes",
|
|
38
43
|
manualPage: DeviceManualUrls.Velocity,
|
|
39
44
|
separatorBefore: false,
|
|
45
|
+
external: false,
|
|
40
46
|
type: "midi",
|
|
41
47
|
create: ({ boxGraph }, hostField, index) => VelocityDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
42
48
|
box.label.setValue("Velocity");
|
|
@@ -47,9 +53,11 @@ export var EffectFactories;
|
|
|
47
53
|
EffectFactories.Zeitgeist = {
|
|
48
54
|
defaultName: "Zeitgeist",
|
|
49
55
|
defaultIcon: IconSymbol.Zeitgeist,
|
|
56
|
+
briefDescription: "Shuffle",
|
|
50
57
|
description: "Distorts space and time",
|
|
51
58
|
manualPage: DeviceManualUrls.Zeitgeist,
|
|
52
59
|
separatorBefore: false,
|
|
60
|
+
external: false,
|
|
53
61
|
type: "midi",
|
|
54
62
|
create: ({ boxGraph, rootBoxAdapter }, hostField, index) => {
|
|
55
63
|
const useGlobal = false; // TODO First Zeitgeist should be true
|
|
@@ -67,12 +75,29 @@ export var EffectFactories;
|
|
|
67
75
|
});
|
|
68
76
|
}
|
|
69
77
|
};
|
|
78
|
+
EffectFactories.Spielwerk = {
|
|
79
|
+
defaultName: "Spielwerk",
|
|
80
|
+
defaultIcon: IconSymbol.Code,
|
|
81
|
+
briefDescription: "Scriptable FX",
|
|
82
|
+
description: "User-scripted MIDI effect processor",
|
|
83
|
+
manualPage: DeviceManualUrls.Spielwerk,
|
|
84
|
+
separatorBefore: false,
|
|
85
|
+
external: false,
|
|
86
|
+
type: "midi",
|
|
87
|
+
create: ({ boxGraph }, hostField, index) => SpielwerkDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
88
|
+
box.label.setValue("Spielwerk");
|
|
89
|
+
box.index.setValue(index);
|
|
90
|
+
box.host.refer(hostField);
|
|
91
|
+
})
|
|
92
|
+
};
|
|
70
93
|
EffectFactories.StereoTool = {
|
|
71
94
|
defaultName: "Stereo Tool",
|
|
72
95
|
defaultIcon: IconSymbol.Stereo,
|
|
96
|
+
briefDescription: "Stereo Imaging",
|
|
73
97
|
description: "Computes a stereo transformation matrix with volume, panning, phase inversion and stereo width.",
|
|
74
98
|
manualPage: DeviceManualUrls.StereoTool,
|
|
75
99
|
separatorBefore: false,
|
|
100
|
+
external: false,
|
|
76
101
|
type: "audio",
|
|
77
102
|
create: ({ boxGraph }, hostField, index) => StereoToolDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
78
103
|
box.label.setValue("Stereo Tool");
|
|
@@ -83,9 +108,11 @@ export var EffectFactories;
|
|
|
83
108
|
EffectFactories.Delay = {
|
|
84
109
|
defaultName: "Delay",
|
|
85
110
|
defaultIcon: IconSymbol.Time,
|
|
111
|
+
briefDescription: "Echo FX",
|
|
86
112
|
description: "Echoes the input signal with time-based repeats",
|
|
87
113
|
manualPage: DeviceManualUrls.Delay,
|
|
88
114
|
separatorBefore: false,
|
|
115
|
+
external: false,
|
|
89
116
|
type: "audio",
|
|
90
117
|
create: ({ boxGraph }, hostField, index) => DelayDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
91
118
|
box.label.setValue("Delay");
|
|
@@ -97,9 +124,11 @@ export var EffectFactories;
|
|
|
97
124
|
EffectFactories.DattorroReverb = {
|
|
98
125
|
defaultName: "Dattorro Reverb",
|
|
99
126
|
defaultIcon: IconSymbol.Dattorro,
|
|
127
|
+
briefDescription: "Reverb",
|
|
100
128
|
description: "Dense algorithmic reverb based on Dattorro's design, capable of infinite decay",
|
|
101
129
|
manualPage: DeviceManualUrls.DattorroReverb,
|
|
102
130
|
separatorBefore: false,
|
|
131
|
+
external: false,
|
|
103
132
|
type: "audio",
|
|
104
133
|
create: ({ boxGraph }, hostField, index) => DattorroReverbDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
105
134
|
box.label.setValue("Dattorro Reverb");
|
|
@@ -110,9 +139,11 @@ export var EffectFactories;
|
|
|
110
139
|
EffectFactories.Maximizer = {
|
|
111
140
|
defaultName: "Maximizer",
|
|
112
141
|
defaultIcon: IconSymbol.Volume,
|
|
142
|
+
briefDescription: "Brickwall Limiter",
|
|
113
143
|
description: "Brickwall limiter with automatic makeup gain",
|
|
114
144
|
manualPage: DeviceManualUrls.Maximizer,
|
|
115
145
|
separatorBefore: false,
|
|
146
|
+
external: false,
|
|
116
147
|
type: "audio",
|
|
117
148
|
create: ({ boxGraph }, hostField, index) => MaximizerDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
118
149
|
box.label.setValue("Maximizer");
|
|
@@ -123,9 +154,11 @@ export var EffectFactories;
|
|
|
123
154
|
EffectFactories.Compressor = {
|
|
124
155
|
defaultName: "Compressor",
|
|
125
156
|
defaultIcon: IconSymbol.Compressor,
|
|
157
|
+
briefDescription: "Compressor",
|
|
126
158
|
description: "Reduces the dynamic range by attenuating signals above a threshold",
|
|
127
159
|
manualPage: DeviceManualUrls.Compressor,
|
|
128
160
|
separatorBefore: false,
|
|
161
|
+
external: false,
|
|
129
162
|
type: "audio",
|
|
130
163
|
create: ({ boxGraph }, hostField, index) => CompressorDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
131
164
|
box.label.setValue("Compressor");
|
|
@@ -136,9 +169,11 @@ export var EffectFactories;
|
|
|
136
169
|
EffectFactories.Gate = {
|
|
137
170
|
defaultName: "Gate",
|
|
138
171
|
defaultIcon: IconSymbol.Gate,
|
|
172
|
+
briefDescription: "Noise Gate",
|
|
139
173
|
description: "Attenuates signals below a threshold to reduce noise",
|
|
140
174
|
manualPage: DeviceManualUrls.Gate,
|
|
141
175
|
separatorBefore: false,
|
|
176
|
+
external: false,
|
|
142
177
|
type: "audio",
|
|
143
178
|
create: ({ boxGraph }, hostField, index) => GateDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
144
179
|
box.label.setValue("Gate");
|
|
@@ -147,11 +182,13 @@ export var EffectFactories;
|
|
|
147
182
|
})
|
|
148
183
|
};
|
|
149
184
|
EffectFactories.Reverb = {
|
|
150
|
-
defaultName: "
|
|
185
|
+
defaultName: "Free Reverb",
|
|
151
186
|
defaultIcon: IconSymbol.Cube,
|
|
187
|
+
briefDescription: "Reverb",
|
|
152
188
|
description: "Simulates space and depth with reflections",
|
|
153
189
|
manualPage: DeviceManualUrls.Reverb,
|
|
154
190
|
separatorBefore: false,
|
|
191
|
+
external: false,
|
|
155
192
|
type: "audio",
|
|
156
193
|
create: ({ boxGraph }, hostField, index) => ReverbDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
157
194
|
box.label.setValue("Reverb");
|
|
@@ -163,9 +200,11 @@ export var EffectFactories;
|
|
|
163
200
|
EffectFactories.Crusher = {
|
|
164
201
|
defaultName: "Crusher",
|
|
165
202
|
defaultIcon: IconSymbol.Bug,
|
|
203
|
+
briefDescription: "Bit Crusher",
|
|
166
204
|
description: "Degrates the audio signal",
|
|
167
205
|
manualPage: DeviceManualUrls.Crusher,
|
|
168
206
|
separatorBefore: false,
|
|
207
|
+
external: false,
|
|
169
208
|
type: "audio",
|
|
170
209
|
create: ({ boxGraph }, hostField, index) => CrusherDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
171
210
|
box.label.setValue("Crusher");
|
|
@@ -176,9 +215,11 @@ export var EffectFactories;
|
|
|
176
215
|
EffectFactories.Fold = {
|
|
177
216
|
defaultName: "Fold",
|
|
178
217
|
defaultIcon: IconSymbol.Fold,
|
|
218
|
+
briefDescription: "Wavefolder",
|
|
179
219
|
description: "Folds the signal back into audio-range",
|
|
180
220
|
manualPage: DeviceManualUrls.Fold,
|
|
181
221
|
separatorBefore: false,
|
|
222
|
+
external: false,
|
|
182
223
|
type: "audio",
|
|
183
224
|
create: ({ boxGraph }, hostField, index) => FoldDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
184
225
|
box.label.setValue("Fold");
|
|
@@ -189,9 +230,11 @@ export var EffectFactories;
|
|
|
189
230
|
EffectFactories.Waveshaper = {
|
|
190
231
|
defaultName: "Waveshaper",
|
|
191
232
|
defaultIcon: IconSymbol.Curve,
|
|
233
|
+
briefDescription: "Waveshaper",
|
|
192
234
|
description: "Applies nonlinear waveshaping distortion",
|
|
193
235
|
manualPage: DeviceManualUrls.Waveshaper,
|
|
194
236
|
separatorBefore: false,
|
|
237
|
+
external: false,
|
|
195
238
|
type: "audio",
|
|
196
239
|
create: ({ boxGraph }, hostField, index) => WaveshaperDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
197
240
|
box.label.setValue("Waveshaper");
|
|
@@ -202,9 +245,11 @@ export var EffectFactories;
|
|
|
202
245
|
EffectFactories.Tidal = {
|
|
203
246
|
defaultName: "Tidal",
|
|
204
247
|
defaultIcon: IconSymbol.Tidal,
|
|
248
|
+
briefDescription: "Tremolo & Autopan",
|
|
205
249
|
description: "Shape rhythm and space through volume and pan.",
|
|
206
250
|
manualPage: DeviceManualUrls.Tidal,
|
|
207
251
|
separatorBefore: false,
|
|
252
|
+
external: false,
|
|
208
253
|
type: "audio",
|
|
209
254
|
create: ({ boxGraph }, hostField, index) => TidalDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
210
255
|
box.label.setValue("Tidal");
|
|
@@ -216,9 +261,11 @@ export var EffectFactories;
|
|
|
216
261
|
EffectFactories.Revamp = {
|
|
217
262
|
defaultName: "Revamp",
|
|
218
263
|
defaultIcon: IconSymbol.EQ,
|
|
264
|
+
briefDescription: "Graphical EQ",
|
|
219
265
|
description: "Shapes the frequency balance of the sound",
|
|
220
266
|
manualPage: DeviceManualUrls.Revamp,
|
|
221
267
|
separatorBefore: false,
|
|
268
|
+
external: false,
|
|
222
269
|
type: "audio",
|
|
223
270
|
create: ({ boxGraph }, hostField, index) => RevampDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
224
271
|
EffectParameterDefaults.defaultRevampDeviceBox(box);
|
|
@@ -227,14 +274,31 @@ export var EffectFactories;
|
|
|
227
274
|
})
|
|
228
275
|
};
|
|
229
276
|
EffectFactories.NeuralAmp = {
|
|
230
|
-
defaultName: "
|
|
231
|
-
defaultIcon: IconSymbol.
|
|
232
|
-
|
|
277
|
+
defaultName: "Tone3000",
|
|
278
|
+
defaultIcon: IconSymbol.Tone3000,
|
|
279
|
+
briefDescription: "Amp Modeler",
|
|
280
|
+
description: "Access thousands of amps, pedals, and cabs captured with Neural Amp Modeler.",
|
|
233
281
|
manualPage: DeviceManualUrls.NeuralAmp,
|
|
234
282
|
separatorBefore: false,
|
|
283
|
+
external: true,
|
|
235
284
|
type: "audio",
|
|
236
285
|
create: ({ boxGraph }, hostField, index) => NeuralAmpDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
237
|
-
box.label.setValue("
|
|
286
|
+
box.label.setValue("Tone3000");
|
|
287
|
+
box.index.setValue(index);
|
|
288
|
+
box.host.refer(hostField);
|
|
289
|
+
})
|
|
290
|
+
};
|
|
291
|
+
EffectFactories.Werkstatt = {
|
|
292
|
+
defaultName: "Werkstatt",
|
|
293
|
+
defaultIcon: IconSymbol.Code,
|
|
294
|
+
briefDescription: "Scriptable FX",
|
|
295
|
+
description: "User-scripted DSP processor",
|
|
296
|
+
manualPage: DeviceManualUrls.Werkstatt,
|
|
297
|
+
separatorBefore: false,
|
|
298
|
+
external: false,
|
|
299
|
+
type: "audio",
|
|
300
|
+
create: ({ boxGraph }, hostField, index) => WerkstattDeviceBox.create(boxGraph, UUID.generate(), (box) => {
|
|
301
|
+
box.label.setValue("Werkstatt");
|
|
238
302
|
box.index.setValue(index);
|
|
239
303
|
box.host.refer(hostField);
|
|
240
304
|
})
|
|
@@ -242,9 +306,11 @@ export var EffectFactories;
|
|
|
242
306
|
EffectFactories.Modular = {
|
|
243
307
|
defaultName: "🔇 Create New Modular Audio Effect (inaudible yet)",
|
|
244
308
|
defaultIcon: IconSymbol.Box,
|
|
309
|
+
briefDescription: "Modular System",
|
|
245
310
|
description: "",
|
|
246
311
|
manualPage: DeviceManualUrls.Modular,
|
|
247
312
|
separatorBefore: true,
|
|
313
|
+
external: false,
|
|
248
314
|
type: "audio",
|
|
249
315
|
create: ({ boxGraph, rootBox, userEditingManager }, hostField, index) => {
|
|
250
316
|
const moduleSetupBox = ModularBox.create(boxGraph, UUID.generate(), (box) => {
|
|
@@ -280,28 +346,30 @@ export var EffectFactories;
|
|
|
280
346
|
EffectFactories.MidiNamed = {
|
|
281
347
|
Arpeggio: EffectFactories.Arpeggio,
|
|
282
348
|
Pitch: EffectFactories.Pitch,
|
|
349
|
+
Spielwerk: EffectFactories.Spielwerk,
|
|
283
350
|
Velocity: EffectFactories.Velocity,
|
|
284
351
|
Zeitgeist: EffectFactories.Zeitgeist
|
|
285
352
|
};
|
|
286
|
-
const includeNeuralAmp = false;
|
|
287
353
|
EffectFactories.AudioNamed = {
|
|
288
|
-
StereoTool: EffectFactories.StereoTool,
|
|
289
354
|
Compressor: EffectFactories.Compressor,
|
|
290
|
-
Gate: EffectFactories.Gate,
|
|
291
|
-
Delay: EffectFactories.Delay,
|
|
292
|
-
Reverb: EffectFactories.Reverb,
|
|
293
|
-
DattorroReverb: EffectFactories.DattorroReverb,
|
|
294
|
-
Revamp: EffectFactories.Revamp,
|
|
295
355
|
Crusher: EffectFactories.Crusher,
|
|
356
|
+
DattorroReverb: EffectFactories.DattorroReverb, // Dattorro Reverb
|
|
357
|
+
Delay: // Dattorro Reverb
|
|
358
|
+
EffectFactories.Delay,
|
|
296
359
|
Fold: EffectFactories.Fold,
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
Maximizer: EffectFactories.Maximizer
|
|
360
|
+
Reverb: EffectFactories.Reverb, // Free Reverb
|
|
361
|
+
Gate: // Free Reverb
|
|
362
|
+
EffectFactories.Gate,
|
|
363
|
+
Maximizer: EffectFactories.Maximizer,
|
|
364
|
+
Revamp: EffectFactories.Revamp,
|
|
365
|
+
StereoTool: EffectFactories.StereoTool, // Stereo Tool
|
|
366
|
+
Tidal: // Stereo Tool
|
|
367
|
+
EffectFactories.Tidal,
|
|
368
|
+
NeuralAmp: EffectFactories.NeuralAmp, // Tone3000
|
|
369
|
+
Waveshaper: // Tone3000
|
|
370
|
+
EffectFactories.Waveshaper,
|
|
371
|
+
Werkstatt: EffectFactories.Werkstatt
|
|
301
372
|
};
|
|
302
|
-
if (!includeNeuralAmp) {
|
|
303
|
-
delete EffectFactories.AudioNamed.NeuralAmp;
|
|
304
|
-
}
|
|
305
373
|
EffectFactories.MidiList = Object.values(EffectFactories.MidiNamed);
|
|
306
374
|
EffectFactories.AudioList = Object.values(EffectFactories.AudioNamed);
|
|
307
375
|
EffectFactories.MergedNamed = { ...EffectFactories.MidiNamed, ...EffectFactories.AudioNamed };
|
package/dist/EffectFactory.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Project } from "./project";
|
|
|
5
5
|
import { EffectBox } from "./EffectBox";
|
|
6
6
|
export interface EffectFactory extends DeviceFactory {
|
|
7
7
|
readonly separatorBefore: boolean;
|
|
8
|
+
readonly external: boolean;
|
|
8
9
|
readonly type: "audio" | "midi";
|
|
9
10
|
create(project: Project, host: Field<EffectPointerType>, index: int): EffectBox;
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectFactory.d.ts","sourceRoot":"","sources":["../src/EffectFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,WAAW,aAAc,SAAQ,aAAa;IAChD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;IAE/B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAA;CAClF"}
|
|
1
|
+
{"version":3,"file":"EffectFactory.d.ts","sourceRoot":"","sources":["../src/EffectFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,WAAW,aAAc,SAAQ,aAAa;IAChD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;IAE/B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAA;CAClF"}
|
package/dist/Engine.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { int, Nullable, ObservableValue, Observer, Subscription, Terminable, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { int, Nullable, ObservableValue, Observer, Procedure, Subscription, Terminable, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioData, bpm, ppqn } from "@opendaw/lib-dsp";
|
|
3
3
|
import { ClipNotification, EnginePreferences, NoteSignal } from "@opendaw/studio-adapters";
|
|
4
4
|
import { Project } from "./project";
|
|
@@ -24,6 +24,7 @@ export interface Engine extends Terminable {
|
|
|
24
24
|
scheduleClipPlay(clipIds: ReadonlyArray<UUID.Bytes>): void;
|
|
25
25
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
26
26
|
subscribeClipNotification(observer: Observer<ClipNotification>): Subscription;
|
|
27
|
+
subscribeDeviceMessage(uuid: string, listener: Procedure<string>): Subscription;
|
|
27
28
|
registerMonitoringSource(uuid: UUID.Bytes, node: AudioNode, numChannels: 1 | 2): void;
|
|
28
29
|
unregisterMonitoringSource(uuid: UUID.Bytes): void;
|
|
29
30
|
get position(): ObservableValue<ppqn>;
|
package/dist/Engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
|
package/dist/EngineFacade.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultObservableValue, int, Nullable, ObservableValue, Observer, Subscription, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { DefaultObservableValue, int, Nullable, ObservableValue, Observer, Procedure, Subscription, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioData, bpm, ppqn } from "@opendaw/lib-dsp";
|
|
3
3
|
import { ClipNotification, EnginePreferences, NoteSignal } from "@opendaw/studio-adapters";
|
|
4
4
|
import { Engine } from "./Engine";
|
|
@@ -42,6 +42,7 @@ export declare class EngineFacade implements Engine {
|
|
|
42
42
|
noteSignal(signal: NoteSignal): void;
|
|
43
43
|
scheduleClipPlay(clipIds: ReadonlyArray<UUID.Bytes>): void;
|
|
44
44
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
45
|
+
subscribeDeviceMessage(uuid: string, listener: Procedure<string>): Subscription;
|
|
45
46
|
registerMonitoringSource(uuid: UUID.Bytes, node: AudioNode, numChannels: 1 | 2): void;
|
|
46
47
|
unregisterMonitoringSource(uuid: UUID.Bytes): void;
|
|
47
48
|
terminate(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"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"}
|
package/dist/EngineFacade.js
CHANGED
|
@@ -91,6 +91,9 @@ export class EngineFacade {
|
|
|
91
91
|
scheduleClipStop(trackIds) {
|
|
92
92
|
this.#worklet.unwrap("No worklet to scheduleClipStop").scheduleClipStop(trackIds);
|
|
93
93
|
}
|
|
94
|
+
subscribeDeviceMessage(uuid, listener) {
|
|
95
|
+
return this.#worklet.unwrap("No worklet to subscribeDeviceMessage").subscribeDeviceMessage(uuid, listener);
|
|
96
|
+
}
|
|
94
97
|
registerMonitoringSource(uuid, node, numChannels) {
|
|
95
98
|
this.#worklet.ifSome(worklet => worklet.registerMonitoringSource(uuid, node, numChannels));
|
|
96
99
|
}
|
package/dist/EngineWorklet.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { int, MutableObservableValue, Nullable, ObservableValue, Observer, Subscription, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { int, MutableObservableValue, Nullable, ObservableValue, Observer, Procedure, Subscription, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { AudioData, bpm, ppqn } from "@opendaw/lib-dsp";
|
|
3
3
|
import { ClipNotification, EngineSettings, ExportStemsConfiguration, NoteSignal, PreferencesHost, ProcessorOptions } from "@opendaw/studio-adapters";
|
|
4
4
|
import { Engine } from "./Engine";
|
|
@@ -39,6 +39,7 @@ export declare class EngineWorklet extends AudioWorkletNode implements Engine {
|
|
|
39
39
|
scheduleClipPlay(clipIds: ReadonlyArray<UUID.Bytes>): void;
|
|
40
40
|
scheduleClipStop(trackIds: ReadonlyArray<UUID.Bytes>): void;
|
|
41
41
|
subscribeClipNotification(observer: Observer<ClipNotification>): Subscription;
|
|
42
|
+
subscribeDeviceMessage(uuid: string, listener: Procedure<string>): Subscription;
|
|
42
43
|
registerMonitoringSource(uuid: UUID.Bytes, node: AudioNode, numChannels: 1 | 2): void;
|
|
43
44
|
unregisterMonitoringSource(uuid: UUID.Bytes): void;
|
|
44
45
|
terminate(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAA;AAEpE,OAAO,EACH,gBAAgB,EAIhB,cAAc,EAKd,wBAAwB,EAExB,UAAU,EAEV,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAKjC,qBAAa,aAAc,SAAQ,gBAAiB,YAAW,MAAM;;IACjE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAQ;IAEtB,QAAQ,CAAC,EAAE,SAAqB;
|
|
1
|
+
{"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"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"}
|
package/dist/EngineWorklet.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Arrays, DefaultObservableValue, isDefined, Notifier, Option, SyncStream, Terminator, UUID } from "@opendaw/lib-std";
|
|
1
|
+
import { Arrays, DefaultObservableValue, isDefined, Notifier, Option, SetMultimap, SyncStream, Terminator, UUID } from "@opendaw/lib-std";
|
|
2
2
|
import { RenderQuantum } from "@opendaw/lib-dsp";
|
|
3
3
|
import { Communicator, Messenger } from "@opendaw/lib-runtime";
|
|
4
4
|
import { EngineSettingsSchema, EngineStateSchema, ExportStemsConfiguration, PERF_BUFFER_SIZE, PreferencesHost } from "@opendaw/studio-adapters";
|
|
@@ -25,6 +25,7 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
25
25
|
#notifyClipNotification;
|
|
26
26
|
#notifyNoteSignals;
|
|
27
27
|
#playingClips;
|
|
28
|
+
#deviceMessageListeners = new SetMultimap();
|
|
28
29
|
#commands;
|
|
29
30
|
#isReady;
|
|
30
31
|
#perfBuffer = new Float32Array(0);
|
|
@@ -115,6 +116,11 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
115
116
|
Communicator.executor(messenger.channel("engine-to-client"), {
|
|
116
117
|
log: (message) => console.log("WORKLET", message),
|
|
117
118
|
error: (reason) => this.dispatchEvent(new ErrorEvent("error", { error: reason })),
|
|
119
|
+
deviceMessage: (uuid, message) => {
|
|
120
|
+
for (const listener of this.#deviceMessageListeners.get(uuid)) {
|
|
121
|
+
listener(message);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
118
124
|
ready: () => resolve(),
|
|
119
125
|
fetchAudio: (uuid) => {
|
|
120
126
|
return new Promise((resolve, reject) => {
|
|
@@ -220,6 +226,10 @@ export class EngineWorklet extends AudioWorkletNode {
|
|
|
220
226
|
});
|
|
221
227
|
return this.#notifyClipNotification.subscribe(observer);
|
|
222
228
|
}
|
|
229
|
+
subscribeDeviceMessage(uuid, listener) {
|
|
230
|
+
this.#deviceMessageListeners.add(uuid, listener);
|
|
231
|
+
return { terminate: () => this.#deviceMessageListeners.remove(uuid, listener) };
|
|
232
|
+
}
|
|
223
233
|
registerMonitoringSource(uuid, node, numChannels) {
|
|
224
234
|
this.#monitoringSources.set(UUID.toString(uuid), { node, numChannels });
|
|
225
235
|
this.#rebuildMonitoringMerger();
|
package/dist/Mixer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mixer.d.ts","sourceRoot":"","sources":["../src/Mixer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,UAAU,EAAmB,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,mBAAmB,EAAE,2BAA2B,EAAC,MAAM,0BAA0B,CAAA;AAIzF,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAQD,qBAAa,KAAM,YAAW,UAAU;;gBAOxB,UAAU,EAAE,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC;IAuC7F,oBAAoB,CAAC,EAAC,IAAI,EAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"Mixer.d.ts","sourceRoot":"","sources":["../src/Mixer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,UAAU,EAAmB,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,mBAAmB,EAAE,2BAA2B,EAAC,MAAM,0BAA0B,CAAA;AAIzF,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAQD,qBAAa,KAAM,YAAW,UAAU;;gBAOxB,UAAU,EAAE,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC;IAuC7F,oBAAoB,CAAC,EAAC,IAAI,EAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,GAAG,UAAU;IAUrF,SAAS,IAAI,IAAI;CAqDpB"}
|