@opendaw/studio-core 0.0.44 → 0.0.45

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 (67) hide show
  1. package/dist/AudioOfflineRenderer.d.ts +1 -2
  2. package/dist/AudioOfflineRenderer.d.ts.map +1 -1
  3. package/dist/AudioOfflineRenderer.js +10 -3
  4. package/dist/EffectBox.d.ts +2 -2
  5. package/dist/EffectBox.d.ts.map +1 -1
  6. package/dist/EffectFactories.d.ts +6 -0
  7. package/dist/EffectFactories.d.ts.map +1 -1
  8. package/dist/EffectFactories.js +29 -24
  9. package/dist/EffectFactory.d.ts +1 -1
  10. package/dist/EffectFactory.d.ts.map +1 -1
  11. package/dist/EffectParameterDefaults.d.ts +5 -0
  12. package/dist/EffectParameterDefaults.d.ts.map +1 -0
  13. package/dist/EffectParameterDefaults.js +27 -0
  14. package/dist/Engine.d.ts +1 -1
  15. package/dist/Engine.d.ts.map +1 -1
  16. package/dist/EngineFacade.d.ts +1 -1
  17. package/dist/EngineFacade.d.ts.map +1 -1
  18. package/dist/EngineFacade.js +1 -1
  19. package/dist/EngineWorklet.d.ts +1 -1
  20. package/dist/EngineWorklet.d.ts.map +1 -1
  21. package/dist/EngineWorklet.js +3 -2
  22. package/dist/Preferences.d.ts +20 -0
  23. package/dist/Preferences.d.ts.map +1 -0
  24. package/dist/Preferences.js +46 -0
  25. package/dist/capture/CaptureDevices.js +2 -2
  26. package/dist/capture/RecordTrack.d.ts +2 -2
  27. package/dist/capture/RecordTrack.d.ts.map +1 -1
  28. package/dist/capture/Recording.d.ts +1 -1
  29. package/dist/capture/Recording.d.ts.map +1 -1
  30. package/dist/capture/Recording.js +1 -1
  31. package/dist/dawproject/BuiltinDevices.d.ts.map +1 -1
  32. package/dist/dawproject/BuiltinDevices.js +3 -2
  33. package/dist/dawproject/{DawProjectImport.d.ts → DawProjectImporter.d.ts} +1 -1
  34. package/dist/dawproject/DawProjectImporter.d.ts.map +1 -0
  35. package/dist/dawproject/{DawProjectImport.js → DawProjectImporter.js} +17 -5
  36. package/dist/dawproject/DawProjectImporter.test.d.ts +2 -0
  37. package/dist/dawproject/DawProjectImporter.test.d.ts.map +1 -0
  38. package/dist/dawproject/{DawProjectImport.test.js → DawProjectImporter.test.js} +1 -1
  39. package/dist/dawproject/DawProjectService.js +1 -1
  40. package/dist/dawproject/index.d.ts +1 -1
  41. package/dist/dawproject/index.d.ts.map +1 -1
  42. package/dist/dawproject/index.js +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -0
  46. package/dist/midi/MIDILearning.d.ts +1 -1
  47. package/dist/midi/MIDILearning.d.ts.map +1 -1
  48. package/dist/midi/MIDILearning.js +22 -3
  49. package/dist/processors.js +12 -12
  50. package/dist/processors.js.map +4 -4
  51. package/dist/project/Project.d.ts +10 -6
  52. package/dist/project/Project.d.ts.map +1 -1
  53. package/dist/project/Project.js +43 -30
  54. package/dist/project/ProjectMigration.d.ts.map +1 -1
  55. package/dist/project/ProjectMigration.js +10 -1
  56. package/dist/project/Recovery.d.ts +9 -0
  57. package/dist/project/Recovery.d.ts.map +1 -0
  58. package/dist/project/Recovery.js +49 -0
  59. package/dist/project/index.d.ts +1 -0
  60. package/dist/project/index.d.ts.map +1 -1
  61. package/dist/project/index.js +1 -0
  62. package/dist/workers-main.js +2 -2
  63. package/dist/workers-main.js.map +4 -4
  64. package/package.json +49 -49
  65. package/dist/dawproject/DawProjectImport.d.ts.map +0 -1
  66. package/dist/dawproject/DawProjectImport.test.d.ts +0 -2
  67. package/dist/dawproject/DawProjectImport.test.d.ts.map +0 -1
@@ -1,7 +1,6 @@
1
1
  import { int, Option } from "@opendaw/lib-std";
2
2
  import { ExportStemsConfiguration } from "@opendaw/studio-adapters";
3
- import { Project } from "./project/Project";
4
- import { ProjectMeta } from "./project/ProjectMeta";
3
+ import { Project, ProjectMeta } from "./project";
5
4
  export declare namespace AudioOfflineRenderer {
6
5
  const start: (source: Project, meta: ProjectMeta, optExportConfiguration: Option<ExportStemsConfiguration>, sampleRate?: int) => Promise<void>;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AudioOfflineRenderer.d.ts","sourceRoot":"","sources":["../src/AudioOfflineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,GAAG,EAAE,MAAM,EAAmC,MAAM,kBAAkB,CAAA;AAI9G,OAAO,EAAC,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAIjD,yBAAiB,oBAAoB,CAAC;IAC3B,MAAM,KAAK,GAAU,QAAQ,OAAO,EACf,MAAM,WAAW,EACjB,wBAAwB,MAAM,CAAC,wBAAwB,CAAC,EACxD,aAAY,GAAY,KAAG,OAAO,CAAC,IAAI,CAgClE,CAAA;CAiDJ"}
1
+ {"version":3,"file":"AudioOfflineRenderer.d.ts","sourceRoot":"","sources":["../src/AudioOfflineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,GAAG,EAAE,MAAM,EAAmC,MAAM,kBAAkB,CAAA;AAI9G,OAAO,EAAC,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,WAAW,CAAA;AAI9C,yBAAiB,oBAAoB,CAAC;IAC3B,MAAM,KAAK,GAAU,QAAQ,OAAO,EACf,MAAM,WAAW,EACjB,wBAAwB,MAAM,CAAC,wBAAwB,CAAC,EACxD,aAAY,GAAY,KAAG,OAAO,CAAC,IAAI,CAgClE,CAAA;CAwDJ"}
@@ -76,12 +76,19 @@ export var AudioOfflineRenderer;
76
76
  });
77
77
  zip.file(`${trackNames[stemIndex]}.wav`, file, { binary: true });
78
78
  }
79
- const arrayBuffer = await zip.generateAsync({
79
+ const { status, value: arrayBuffer, error } = await Promises.tryCatch(zip.generateAsync({
80
80
  type: "arraybuffer",
81
81
  compression: "DEFLATE",
82
82
  compressionOptions: { level: 6 }
83
- });
83
+ }));
84
84
  dialog.terminate();
85
+ if (status === "rejected") {
86
+ await RuntimeNotifier.info({
87
+ headline: "Error",
88
+ message: `Could not create zip file: ${String(error)}`
89
+ });
90
+ return;
91
+ }
85
92
  const approved = await RuntimeNotifier.approve({
86
93
  headline: "Save Zip",
87
94
  message: `Size: ${arrayBuffer.byteLength >> 20}M`,
@@ -91,7 +98,7 @@ export var AudioOfflineRenderer;
91
98
  return;
92
99
  }
93
100
  const saveResult = await Promises.tryCatch(Files.save(arrayBuffer, { suggestedName: `${meta.name}.zip` }));
94
- if (saveResult.status === "rejected") {
101
+ if (saveResult.status === "rejected" && !Errors.isAbort(saveResult.error)) {
95
102
  panic(String(saveResult.error));
96
103
  }
97
104
  };
@@ -1,3 +1,3 @@
1
- import { ArpeggioDeviceBox, DelayDeviceBox, ModularDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, UnknownAudioEffectDeviceBox, UnknownMidiEffectDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
2
- export type EffectBox = ArpeggioDeviceBox | PitchDeviceBox | ZeitgeistDeviceBox | UnknownMidiEffectDeviceBox | DelayDeviceBox | ReverbDeviceBox | RevampDeviceBox | StereoToolDeviceBox | ModularDeviceBox | UnknownAudioEffectDeviceBox;
1
+ import { ArpeggioDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DelayDeviceBox, ModularDeviceBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, UnknownAudioEffectDeviceBox, UnknownMidiEffectDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
2
+ export type EffectBox = ArpeggioDeviceBox | PitchDeviceBox | ZeitgeistDeviceBox | UnknownMidiEffectDeviceBox | DelayDeviceBox | ReverbDeviceBox | RevampDeviceBox | StereoToolDeviceBox | ModularDeviceBox | UnknownAudioEffectDeviceBox | CompressorDeviceBox | CrusherDeviceBox;
3
3
  //# sourceMappingURL=EffectBox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EffectBox.d.ts","sourceRoot":"","sources":["../src/EffectBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,SAAS,GACf,iBAAiB,GAAG,cAAc,GAAG,kBAAkB,GAAG,0BAA0B,GACpF,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GACxE,gBAAgB,GAAG,2BAA2B,CAAA"}
1
+ {"version":3,"file":"EffectBox.d.ts","sourceRoot":"","sources":["../src/EffectBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,SAAS,GACf,iBAAiB,GAAG,cAAc,GAAG,kBAAkB,GAAG,0BAA0B,GACpF,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GACxE,gBAAgB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,gBAAgB,CAAA"}
@@ -5,7 +5,9 @@ export declare namespace EffectFactories {
5
5
  const Zeitgeist: EffectFactory;
6
6
  const StereoTool: EffectFactory;
7
7
  const Delay: EffectFactory;
8
+ const Compressor: EffectFactory;
8
9
  const Reverb: EffectFactory;
10
+ const Crusher: EffectFactory;
9
11
  const Revamp: EffectFactory;
10
12
  const Modular: EffectFactory;
11
13
  const MidiNamed: {
@@ -15,18 +17,22 @@ export declare namespace EffectFactories {
15
17
  };
16
18
  const AudioNamed: {
17
19
  StereoTool: EffectFactory;
20
+ Compressor: EffectFactory;
18
21
  Delay: EffectFactory;
19
22
  Reverb: EffectFactory;
20
23
  Revamp: EffectFactory;
24
+ Crusher: EffectFactory;
21
25
  Modular: EffectFactory;
22
26
  };
23
27
  const MidiList: ReadonlyArray<Readonly<EffectFactory>>;
24
28
  const AudioList: ReadonlyArray<Readonly<EffectFactory>>;
25
29
  const MergedNamed: {
26
30
  StereoTool: EffectFactory;
31
+ Compressor: EffectFactory;
27
32
  Delay: EffectFactory;
28
33
  Reverb: EffectFactory;
29
34
  Revamp: EffectFactory;
35
+ Crusher: EffectFactory;
30
36
  Modular: EffectFactory;
31
37
  Arpeggio: EffectFactory;
32
38
  Pitch: EffectFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE7C,yBAAiB,eAAe,CAAC;IACtB,MAAM,QAAQ,EAAE,aAWtB,CAAA;IAEM,MAAM,KAAK,EAAE,aAWnB,CAAA;IAEM,MAAM,SAAS,EAAE,aAqBvB,CAAA;IAEM,MAAM,UAAU,EAAE,aAYxB,CAAA;IAEM,MAAM,KAAK,EAAE,aAYnB,CAAA;IAEM,MAAM,MAAM,EAAE,aAapB,CAAA;IAEM,MAAM,MAAM,EAAE,aAgCpB,CAAA;IAEM,MAAM,OAAO,EAAE,aAoCrB,CAAA;IAEM,MAAM,SAAS;;;;KAA+B,CAAA;IAC9C,MAAM,UAAU;;;;;;KAA+C,CAAA;IAC/D,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA4B,CAAA;IACjF,MAAM,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA6B,CAAA;IACnF,MAAM,WAAW;;;;;;;;;KAAgC,CAAA;IACxD,KAAY,cAAc,GAAG,MAAM,OAAO,SAAS,CAAA;IACnD,KAAY,eAAe,GAAG,MAAM,OAAO,UAAU,CAAA;CACxD"}
1
+ {"version":3,"file":"EffectFactories.d.ts","sourceRoot":"","sources":["../src/EffectFactories.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAG7C,yBAAiB,eAAe,CAAC;IACtB,MAAM,QAAQ,EAAE,aAWtB,CAAA;IAEM,MAAM,KAAK,EAAE,aAWnB,CAAA;IAEM,MAAM,SAAS,EAAE,aAqBvB,CAAA;IAEM,MAAM,UAAU,EAAE,aAYxB,CAAA;IAEM,MAAM,KAAK,EAAE,aAYnB,CAAA;IAEM,MAAM,UAAU,EAAE,aAYxB,CAAA;IAEM,MAAM,MAAM,EAAE,aAapB,CAAA;IAEM,MAAM,OAAO,EAAE,aAYrB,CAAA;IAEM,MAAM,MAAM,EAAE,aAYpB,CAAA;IAEM,MAAM,OAAO,EAAE,aAoCrB,CAAA;IAEM,MAAM,SAAS;;;;KAA+B,CAAA;IAC9C,MAAM,UAAU;;;;;;;;KAAoE,CAAA;IACpF,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA4B,CAAA;IACjF,MAAM,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA6B,CAAA;IACnF,MAAM,WAAW;;;;;;;;;;;KAAgC,CAAA;IACxD,KAAY,cAAc,GAAG,MAAM,OAAO,SAAS,CAAA;IACnD,KAAY,eAAe,GAAG,MAAM,OAAO,UAAU,CAAA;CACxD"}
@@ -1,6 +1,7 @@
1
- import { INVERSE_SQRT_2, UUID } from "@opendaw/lib-std";
2
- import { ArpeggioDeviceBox, DelayDeviceBox, GrooveShuffleBox, ModularAudioInputBox, ModularAudioOutputBox, ModularBox, ModularDeviceBox, ModuleConnectionBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
1
+ import { UUID } from "@opendaw/lib-std";
2
+ import { ArpeggioDeviceBox, CompressorDeviceBox, CrusherDeviceBox, DelayDeviceBox, GrooveShuffleBox, ModularAudioInputBox, ModularAudioOutputBox, ModularBox, ModularDeviceBox, ModuleConnectionBox, PitchDeviceBox, RevampDeviceBox, ReverbDeviceBox, StereoToolDeviceBox, ZeitgeistDeviceBox } from "@opendaw/studio-boxes";
3
3
  import { IconSymbol } from "@opendaw/studio-adapters";
4
+ import { EffectParameterDefaults } from "./EffectParameterDefaults";
4
5
  export var EffectFactories;
5
6
  (function (EffectFactories) {
6
7
  EffectFactories.Arpeggio = {
@@ -73,6 +74,18 @@ export var EffectFactories;
73
74
  box.host.refer(unit);
74
75
  })
75
76
  };
77
+ EffectFactories.Compressor = {
78
+ defaultName: "Compressor",
79
+ defaultIcon: IconSymbol.Compressor,
80
+ description: "Reduces the dynamic range by attenuating signals above a threshold",
81
+ separatorBefore: false,
82
+ type: "audio",
83
+ create: ({ boxGraph }, unit, index) => CompressorDeviceBox.create(boxGraph, UUID.generate(), box => {
84
+ box.label.setValue("Compressor");
85
+ box.index.setValue(index);
86
+ box.host.refer(unit);
87
+ })
88
+ };
76
89
  EffectFactories.Reverb = {
77
90
  defaultName: "Reverb",
78
91
  defaultIcon: IconSymbol.Cube,
@@ -86,6 +99,18 @@ export var EffectFactories;
86
99
  box.host.refer(unit);
87
100
  })
88
101
  };
102
+ EffectFactories.Crusher = {
103
+ defaultName: "Crusher",
104
+ defaultIcon: IconSymbol.Bug,
105
+ description: "Degrates the audio signal",
106
+ separatorBefore: false,
107
+ type: "audio",
108
+ create: ({ boxGraph }, unit, index) => CrusherDeviceBox.create(boxGraph, UUID.generate(), box => {
109
+ box.label.setValue("Crusher");
110
+ box.index.setValue(index);
111
+ box.host.refer(unit);
112
+ })
113
+ };
89
114
  EffectFactories.Revamp = {
90
115
  defaultName: "Revamp",
91
116
  defaultIcon: IconSymbol.EQ,
@@ -93,27 +118,7 @@ export var EffectFactories;
93
118
  separatorBefore: false,
94
119
  type: "audio",
95
120
  create: ({ boxGraph }, unit, index) => RevampDeviceBox.create(boxGraph, UUID.generate(), box => {
96
- box.label.setValue("Revamp");
97
- box.highPass.frequency.setInitValue(40.0);
98
- box.highPass.order.setInitValue(2);
99
- box.highPass.q.setInitValue(INVERSE_SQRT_2);
100
- box.highPass.enabled.setInitValue(true);
101
- box.lowShelf.frequency.setInitValue(80.0);
102
- box.lowShelf.gain.setInitValue(6);
103
- box.lowBell.frequency.setInitValue(120.0);
104
- box.lowBell.gain.setInitValue(6);
105
- box.lowBell.q.setInitValue(INVERSE_SQRT_2);
106
- box.midBell.frequency.setInitValue(640.0);
107
- box.midBell.q.setInitValue(INVERSE_SQRT_2);
108
- box.midBell.gain.setInitValue(6);
109
- box.highBell.frequency.setInitValue(3600.0);
110
- box.highBell.q.setInitValue(INVERSE_SQRT_2);
111
- box.highBell.gain.setInitValue(6);
112
- box.highShelf.frequency.setInitValue(10000.0);
113
- box.highShelf.gain.setInitValue(6);
114
- box.lowPass.frequency.setInitValue(15000.0);
115
- box.lowPass.order.setInitValue(2);
116
- box.lowPass.q.setInitValue(INVERSE_SQRT_2);
121
+ EffectParameterDefaults.defaultRevampDeviceBox(box);
117
122
  box.index.setValue(index);
118
123
  box.host.refer(unit);
119
124
  })
@@ -156,7 +161,7 @@ export var EffectFactories;
156
161
  }
157
162
  };
158
163
  EffectFactories.MidiNamed = { Arpeggio: EffectFactories.Arpeggio, Pitch: EffectFactories.Pitch, Zeitgeist: EffectFactories.Zeitgeist };
159
- EffectFactories.AudioNamed = { StereoTool: EffectFactories.StereoTool, Delay: EffectFactories.Delay, Reverb: EffectFactories.Reverb, Revamp: EffectFactories.Revamp, Modular: EffectFactories.Modular };
164
+ EffectFactories.AudioNamed = { StereoTool: EffectFactories.StereoTool, Compressor: EffectFactories.Compressor, Delay: EffectFactories.Delay, Reverb: EffectFactories.Reverb, Revamp: EffectFactories.Revamp, Crusher: EffectFactories.Crusher, Modular: EffectFactories.Modular };
160
165
  EffectFactories.MidiList = Object.values(EffectFactories.MidiNamed);
161
166
  EffectFactories.AudioList = Object.values(EffectFactories.AudioNamed);
162
167
  EffectFactories.MergedNamed = { ...EffectFactories.MidiNamed, ...EffectFactories.AudioNamed };
@@ -1,7 +1,7 @@
1
1
  import { EffectPointerType, IconSymbol } from "@opendaw/studio-adapters";
2
2
  import { Field } from "@opendaw/lib-box";
3
3
  import { int } from "@opendaw/lib-std";
4
- import { Project } from "./project/Project";
4
+ import { Project } from "./project";
5
5
  import { EffectBox } from "./EffectBox";
6
6
  export interface EffectFactory {
7
7
  get defaultName(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"EffectFactory.d.ts","sourceRoot":"","sources":["../src/EffectFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,WAAW,aAAa;IAC1B,IAAI,WAAW,IAAI,MAAM,CAAA;IACzB,IAAI,WAAW,IAAI,UAAU,CAAA;IAC7B,IAAI,WAAW,IAAI,MAAM,CAAA;IACzB,IAAI,eAAe,IAAI,OAAO,CAAA;IAC9B,IAAI,IAAI,IAAI,OAAO,GAAG,MAAM,CAAA;IAE5B,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,iBAAiB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACtE,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,aAAa;IAC1B,IAAI,WAAW,IAAI,MAAM,CAAA;IACzB,IAAI,WAAW,IAAI,UAAU,CAAA;IAC7B,IAAI,WAAW,IAAI,MAAM,CAAA;IACzB,IAAI,eAAe,IAAI,OAAO,CAAA;IAC9B,IAAI,IAAI,IAAI,OAAO,GAAG,MAAM,CAAA;IAE5B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAA;CAClF"}
@@ -0,0 +1,5 @@
1
+ import { RevampDeviceBox } from "@opendaw/studio-boxes";
2
+ export declare namespace EffectParameterDefaults {
3
+ const defaultRevampDeviceBox: (box: RevampDeviceBox) => void;
4
+ }
5
+ //# sourceMappingURL=EffectParameterDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectParameterDefaults.d.ts","sourceRoot":"","sources":["../src/EffectParameterDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AAGrD,yBAAiB,uBAAuB,CAAC;IAC9B,MAAM,sBAAsB,GAAI,KAAK,eAAe,SAsB1D,CAAA;CACJ"}
@@ -0,0 +1,27 @@
1
+ import { INVERSE_SQRT_2 } from "@opendaw/lib-std";
2
+ export var EffectParameterDefaults;
3
+ (function (EffectParameterDefaults) {
4
+ EffectParameterDefaults.defaultRevampDeviceBox = (box) => {
5
+ box.label.setValue("Revamp");
6
+ box.highPass.frequency.setInitValue(40.0);
7
+ box.highPass.order.setInitValue(1);
8
+ box.highPass.q.setInitValue(Math.SQRT1_2);
9
+ box.highPass.enabled.setInitValue(true);
10
+ box.lowShelf.frequency.setInitValue(80.0);
11
+ box.lowShelf.gain.setInitValue(6);
12
+ box.lowBell.frequency.setInitValue(120.0);
13
+ box.lowBell.gain.setInitValue(6);
14
+ box.lowBell.q.setInitValue(INVERSE_SQRT_2);
15
+ box.midBell.frequency.setInitValue(640.0);
16
+ box.midBell.q.setInitValue(INVERSE_SQRT_2);
17
+ box.midBell.gain.setInitValue(6);
18
+ box.highBell.frequency.setInitValue(3600.0);
19
+ box.highBell.q.setInitValue(INVERSE_SQRT_2);
20
+ box.highBell.gain.setInitValue(6);
21
+ box.highShelf.frequency.setInitValue(10000.0);
22
+ box.highShelf.gain.setInitValue(6);
23
+ box.lowPass.frequency.setInitValue(15000.0);
24
+ box.lowPass.order.setInitValue(1);
25
+ box.lowPass.q.setInitValue(Math.SQRT1_2);
26
+ };
27
+ })(EffectParameterDefaults || (EffectParameterDefaults = {}));
package/dist/Engine.d.ts CHANGED
@@ -6,7 +6,7 @@ export interface Engine extends Terminable {
6
6
  play(): void;
7
7
  stop(): void;
8
8
  setPosition(position: ppqn): void;
9
- startRecording(countIn: boolean): void;
9
+ prepareRecordingState(countIn: boolean): void;
10
10
  stopRecording(): void;
11
11
  isReady(): Promise<void>;
12
12
  queryLoadingComplete(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EACH,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAEzC,MAAM,WAAW,MAAO,SAAQ,UAAU;IACtC,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,IAAI,IAAI,CAAA;IACZ,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACtC,aAAa,IAAI,IAAI,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,IAAI,IAAI,CAAA;IACZ,KAAK,IAAI,IAAI,CAAA;IACb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAA;IAC5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACxC,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;IAC3D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAA;IAE7E,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,gBAAgB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/D,IAAI,OAAO,IAAI,OAAO,CAAA;CACzB"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EACH,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAEzC,MAAM,WAAW,MAAO,SAAQ,UAAU;IACtC,IAAI,IAAI,IAAI,CAAA;IACZ,IAAI,IAAI,IAAI,CAAA;IACZ,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,aAAa,IAAI,IAAI,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,IAAI,IAAI,CAAA;IACZ,KAAK,IAAI,IAAI,CAAA;IACb,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAA;IAC5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACxC,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;IAC3D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAA;IAE7E,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,gBAAgB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/D,IAAI,OAAO,IAAI,OAAO,CAAA;CACzB"}
@@ -13,7 +13,7 @@ export declare class EngineFacade implements Engine {
13
13
  play(): void;
14
14
  stop(reset?: boolean): void;
15
15
  setPosition(position: ppqn): void;
16
- startRecording(countIn: boolean): void;
16
+ prepareRecordingState(countIn: boolean): void;
17
17
  stopRecording(): void;
18
18
  get position(): ObservableValue<ppqn>;
19
19
  get isPlaying(): ObservableValue<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAEZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAEzC,qBAAa,YAAa,YAAW,MAAM;;;IAmBvC,UAAU,CAAC,OAAO,EAAE,aAAa;IAmBjC,aAAa,IAAI,IAAI;IAErB,cAAc,IAAI,IAAI;IAMtB,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IACtC,aAAa,IAAI,IAAI;IAErB,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAgC;IACvF,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAiC;IAC/E,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAwC;IACvG,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAiC;IAC9E,IAAI,qBAAqB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAqC;IACtF,IAAI,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IACjG,IAAI,OAAO,IAAI,OAAO,CAAmE;IAEzF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGxC,KAAK,IAAI,IAAI;IACb,UAAU,IAAI,MAAM;IACpB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAG7E,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAG5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IAGxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAGpC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI3D,SAAS,IAAI,IAAI;CAIpB"}
1
+ {"version":3,"file":"EngineFacade.d.ts","sourceRoot":"","sources":["../src/EngineFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAEZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAEzC,qBAAa,YAAa,YAAW,MAAM;;;IAmBvC,UAAU,CAAC,OAAO,EAAE,aAAa;IAmBjC,aAAa,IAAI,IAAI;IAErB,cAAc,IAAI,IAAI;IAMtB,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAC7C,aAAa,IAAI,IAAI;IAErB,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAgC;IACvF,IAAI,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAiC;IAC/E,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAwC;IACvG,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAiC;IAC9E,IAAI,qBAAqB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAqC;IACtF,IAAI,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IACjG,IAAI,OAAO,IAAI,OAAO,CAAmE;IAEzF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGxC,KAAK,IAAI,IAAI;IACb,UAAU,IAAI,MAAM;IACpB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAG7E,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAG5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IAGxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAGpC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI3D,SAAS,IAAI,IAAI;CAIpB"}
@@ -28,7 +28,7 @@ export class EngineFacade {
28
28
  play() { this.#worklet.ifSome(worklet => worklet.play()); }
29
29
  stop(reset = false) { this.#worklet.ifSome(worklet => worklet.stop(reset)); }
30
30
  setPosition(position) { this.#worklet.ifSome(worklet => worklet.setPosition(position)); }
31
- startRecording(countIn) { this.#worklet.ifSome(worklet => worklet.startRecording(countIn)); }
31
+ prepareRecordingState(countIn) { this.#worklet.ifSome(worklet => worklet.prepareRecordingState(countIn)); }
32
32
  stopRecording() { this.#worklet.ifSome(worklet => worklet.stopRecording()); }
33
33
  get position() { return this.#position; }
34
34
  get isPlaying() { return this.#isPlaying; }
@@ -11,7 +11,7 @@ export declare class EngineWorklet extends AudioWorkletNode implements Engine {
11
11
  play(): void;
12
12
  stop(reset?: boolean): void;
13
13
  setPosition(position: ppqn): void;
14
- startRecording(countIn: boolean): void;
14
+ prepareRecordingState(countIn: boolean): void;
15
15
  stopRecording(): void;
16
16
  panic(): void;
17
17
  get isPlaying(): ObservableValue<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EACH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrC,OAAO,EAEH,gBAAgB,EAOhB,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,qBAAa,aAAc,SAAQ,gBAAiB,YAAW,MAAM;;IACjE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAQ;IAEtB,QAAQ,CAAC,EAAE,SAAqB;gBAqBpB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,wBAAwB,EAC9C,OAAO,CAAC,EAAE,gBAAgB;IAsHtC,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IACtC,aAAa,IAAI,IAAI;IACrB,KAAK,IAAI,IAAI;IAEb,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAiC;IAC9E,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAqC;IACzF,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,iBAAiB,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAiC;IACxF,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAwC;IACvG,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAgC;IACvF,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IAC1F,IAAI,OAAO,IAAI,OAAO,CAAuB;IAE7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IACxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAC5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IACxC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG3D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAQ7E,SAAS,IAAI,IAAI;CAIpB"}
1
+ {"version":3,"file":"EngineWorklet.d.ts","sourceRoot":"","sources":["../src/EngineWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EACH,sBAAsB,EAEtB,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,YAAY,EAGZ,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAIrC,OAAO,EAEH,gBAAgB,EAOhB,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,qBAAa,aAAc,SAAQ,gBAAiB,YAAW,MAAM;;IACjE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAQ;IAEtB,QAAQ,CAAC,EAAE,SAAqB;gBAqBpB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,wBAAwB,EAC9C,OAAO,CAAC,EAAE,gBAAgB;IAuHtC,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;IAClC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IACjC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAC7C,aAAa,IAAI,IAAI;IACrB,KAAK,IAAI,IAAI;IAEb,IAAI,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAyB;IAClE,IAAI,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC,CAA2B;IACtE,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,CAA4B;IACxE,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAiC;IAC9E,IAAI,qBAAqB,IAAI,eAAe,CAAC,MAAM,CAAC,CAAqC;IACzF,IAAI,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAwB;IAC7D,IAAI,iBAAiB,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAiC;IACxF,IAAI,wBAAwB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAwC;IACvG,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAgC;IACvF,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAA2B;IAC1F,IAAI,OAAO,IAAI,OAAO,CAAuB;IAE7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IACxC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IACpC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY;IAC5D,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;IACxC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAI1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IAG3D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,YAAY;IAQ7E,SAAS,IAAI,IAAI;CAIpB"}
@@ -56,7 +56,7 @@ export class EngineWorklet extends AudioWorkletNode {
56
56
  play() { dispatcher.dispatchAndForget(this.play); }
57
57
  stop(reset) { dispatcher.dispatchAndForget(this.stop, reset); }
58
58
  setPosition(position) { dispatcher.dispatchAndForget(this.setPosition, position); }
59
- startRecording(countIn) { dispatcher.dispatchAndForget(this.startRecording, countIn); }
59
+ prepareRecordingState(countIn) { dispatcher.dispatchAndForget(this.prepareRecordingState, countIn); }
60
60
  stopRecording() { dispatcher.dispatchAndForget(this.stopRecording); }
61
61
  setMetronomeEnabled(enabled) {
62
62
  dispatcher.dispatchAndForget(this.setMetronomeEnabled, enabled);
@@ -82,6 +82,7 @@ export class EngineWorklet extends AudioWorkletNode {
82
82
  }));
83
83
  Communicator.executor(messenger.channel("engine-to-client"), {
84
84
  log: (message) => console.log("WORKLET", message),
85
+ error: (reason) => this.dispatchEvent(new ErrorEvent("error", { error: reason })),
85
86
  ready: () => resolve(),
86
87
  fetchAudio: (uuid) => {
87
88
  return new Promise((resolve, reject) => {
@@ -132,7 +133,7 @@ export class EngineWorklet extends AudioWorkletNode {
132
133
  play() { this.#commands.play(); }
133
134
  stop(reset = false) { this.#commands.stop(reset); }
134
135
  setPosition(position) { this.#commands.setPosition(position); }
135
- startRecording(countIn) { this.#commands.startRecording(countIn); }
136
+ prepareRecordingState(countIn) { this.#commands.prepareRecordingState(countIn); }
136
137
  stopRecording() { this.#commands.stopRecording(); }
137
138
  panic() { this.#commands.panic(); }
138
139
  get isPlaying() { return this.#isPlaying; }
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ import { Observer, Subscription } from "@opendaw/lib-std";
3
+ declare const PreferencesSchema: z.ZodObject<{
4
+ "auto-open-clips": z.ZodDefault<z.ZodBoolean>;
5
+ "auto-create-output-compressor": z.ZodDefault<z.ZodBoolean>;
6
+ "footer-show-fps-meter": z.ZodDefault<z.ZodBoolean>;
7
+ "footer-show-build-infos": z.ZodDefault<z.ZodBoolean>;
8
+ }, z.core.$strip>;
9
+ export type Preferences = z.infer<typeof PreferencesSchema>;
10
+ export declare const Preferences: {
11
+ values: {
12
+ "auto-open-clips": boolean;
13
+ "auto-create-output-compressor": boolean;
14
+ "footer-show-fps-meter": boolean;
15
+ "footer-show-build-infos": boolean;
16
+ };
17
+ catchupAndSubscribe: <KEY extends keyof Preferences>(observer: Observer<Preferences[KEY]>, property: KEY) => Subscription;
18
+ };
19
+ export {};
20
+ //# sourceMappingURL=Preferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preferences.d.ts","sourceRoot":"","sources":["../src/Preferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AACrB,OAAO,EAAsB,QAAQ,EAAE,YAAY,EAAW,MAAM,kBAAkB,CAAA;AAEtF,QAAA,MAAM,iBAAiB;;;;;iBAKrB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW;;;;;;;0BAkCM,GAAG,SAAS,MAAM,WAAW,YACrC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,KAAG,YAAY;CAK1E,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ import { isDefined, Notifier, tryCatch } from "@opendaw/lib-std";
3
+ const PreferencesSchema = z.object({
4
+ "auto-open-clips": z.boolean().default(false),
5
+ "auto-create-output-compressor": z.boolean().default(true),
6
+ "footer-show-fps-meter": z.boolean().default(false),
7
+ "footer-show-build-infos": z.boolean().default(false)
8
+ });
9
+ export const Preferences = (() => {
10
+ const STORAGE_KEY = "preferences";
11
+ const notifier = new Notifier();
12
+ const watch = (target) => new Proxy(target, {
13
+ set(obj, prop, value) {
14
+ const key = prop;
15
+ console.debug(`preference changed. key: ${key}, value: ${value}`);
16
+ obj[key] = value;
17
+ notifier.notify(key);
18
+ tryCatch(() => localStorage.setItem(STORAGE_KEY, JSON.stringify(target)));
19
+ return true;
20
+ },
21
+ preventExtensions() {
22
+ // Prevent the proxy target from being made non-extensible
23
+ return false;
24
+ }
25
+ });
26
+ const getOrCreate = () => {
27
+ const stored = localStorage.getItem(STORAGE_KEY);
28
+ if (isDefined(stored)) {
29
+ const { status, value } = tryCatch(() => JSON.parse(stored));
30
+ if (status === "success") {
31
+ return watch({ ...PreferencesSchema.parse(value) });
32
+ }
33
+ }
34
+ return watch({ ...PreferencesSchema.parse({}) });
35
+ };
36
+ const preferences = getOrCreate();
37
+ return {
38
+ values: preferences,
39
+ catchupAndSubscribe: (observer, property) => {
40
+ observer(preferences[property]);
41
+ return notifier.subscribe(key => { if (key === property) {
42
+ observer(preferences[property]);
43
+ } });
44
+ }
45
+ };
46
+ })();
@@ -10,7 +10,7 @@ export class CaptureDevices {
10
10
  this.#project = project;
11
11
  this.#captures = UUID.newSet(unit => unit.uuid);
12
12
  this.#subscription = this.#project.rootBox.audioUnits.pointerHub.catchupAndSubscribe({
13
- onAdd: ({ box }) => {
13
+ onAdded: ({ box }) => {
14
14
  const audioUnitBox = asInstanceOf(box, AudioUnitBox);
15
15
  const capture = audioUnitBox.capture.targetVertex
16
16
  .ifSome(({ box }) => box.accept({
@@ -21,7 +21,7 @@ export class CaptureDevices {
21
21
  this.#captures.add(capture);
22
22
  }
23
23
  },
24
- onRemove: ({ box: { address: { uuid } } }) => this.#captures.removeByKeyIfExist(uuid)?.terminate()
24
+ onRemoved: ({ box: { address: { uuid } } }) => this.#captures.removeByKeyIfExist(uuid)?.terminate()
25
25
  });
26
26
  }
27
27
  get project() { return this.#project; }
@@ -1,7 +1,7 @@
1
1
  import { AudioUnitBox, TrackBox } from "@opendaw/studio-boxes";
2
2
  import { TrackType } from "@opendaw/studio-adapters";
3
- import { Editing } from "@opendaw/lib-box";
3
+ import { BoxEditing } from "@opendaw/lib-box";
4
4
  export declare namespace RecordTrack {
5
- const findOrCreate: (editing: Editing, audioUnitBox: AudioUnitBox, type: TrackType) => TrackBox;
5
+ const findOrCreate: (editing: BoxEditing, audioUnitBox: AudioUnitBox, type: TrackType) => TrackBox;
6
6
  }
7
7
  //# sourceMappingURL=RecordTrack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecordTrack.d.ts","sourceRoot":"","sources":["../../src/capture/RecordTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAExC,yBAAiB,WAAW,CAAC;IAClB,MAAM,YAAY,GAAI,SAAS,OAAO,EAAE,cAAc,YAAY,EAAE,MAAM,SAAS,KAAG,QAe5F,CAAA;CACJ"}
1
+ {"version":3,"file":"RecordTrack.d.ts","sourceRoot":"","sources":["../../src/capture/RecordTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE3C,yBAAiB,WAAW,CAAC;IAClB,MAAM,YAAY,GAAI,SAAS,UAAU,EAAE,cAAc,YAAY,EAAE,MAAM,SAAS,KAAG,QAe/F,CAAA;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { Terminable } from "@opendaw/lib-std";
2
- import { Project } from "../project/Project";
2
+ import { Project } from "../project";
3
3
  export declare class Recording {
4
4
  #private;
5
5
  static get isRecording(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../src/capture/Recording.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAK7F,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAE1C,qBAAa,SAAS;;IAClB,MAAM,KAAK,WAAW,IAAI,OAAO,CAA2B;WAE/C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA6D3E,OAAO;CACV"}
1
+ {"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../src/capture/Recording.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAK7F,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAElC,qBAAa,SAAS;;IAClB,MAAM,KAAK,WAAW,IAAI,OAAO,CAA2B;WAE/C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA6D3E,OAAO;CACV"}
@@ -25,7 +25,7 @@ export class Recording {
25
25
  return Errors.warn(String(error));
26
26
  }
27
27
  terminator.ownAll(...captures.map(capture => capture.startRecording()));
28
- engine.startRecording(countIn);
28
+ engine.prepareRecordingState(countIn);
29
29
  const { isRecording, isCountingIn } = engine;
30
30
  const stop = () => {
31
31
  if (isRecording.getValue() || isCountingIn.getValue()) {
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinDevices.d.ts","sourceRoot":"","sources":["../../src/dawproject/BuiltinDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAmB,MAAM,yBAAyB,CAAA;AACjG,OAAO,EAAC,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAY,GAAG,EAAO,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAG9C,yBAAiB,cAAc,CAAC;IACrB,MAAM,SAAS,GAAI,UAAU,QAAQ,EAClB,WAAW,eAAe,EAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvE,OAAO,GAAG,KAAG,eA4DtC,CAAA;CACJ"}
1
+ {"version":3,"file":"BuiltinDevices.d.ts","sourceRoot":"","sources":["../../src/dawproject/BuiltinDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAmB,MAAM,yBAAyB,CAAA;AACjG,OAAO,EAAC,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAY,GAAG,EAAO,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAG9C,yBAAiB,cAAc,CAAC;IACrB,MAAM,SAAS,GAAI,UAAU,QAAQ,EAClB,WAAW,eAAe,EAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvE,OAAO,GAAG,KAAG,eA6DtC,CAAA;CACJ"}
@@ -1,7 +1,7 @@
1
1
  import { EqBandType, ParameterDecoder } from "@opendaw/lib-dawproject";
2
2
  import { RevampDeviceBox } from "@opendaw/studio-boxes";
3
3
  import { ifDefined, UUID } from "@opendaw/lib-std";
4
- import { semitoneToHz } from "@opendaw/lib-dsp";
4
+ import { EffectParameterDefaults } from "../EffectParameterDefaults";
5
5
  export var BuiltinDevices;
6
6
  (function (BuiltinDevices) {
7
7
  BuiltinDevices.equalizer = (boxGraph, equalizer, field, index) => {
@@ -23,7 +23,7 @@ export var BuiltinDevices;
23
23
  const readPass = (schema, pass) => {
24
24
  const { order, frequency, q, enabled } = pass;
25
25
  order.setValue(mapOrder(schema.order));
26
- frequency.setValue(semitoneToHz(schema.freq.value));
26
+ frequency.setValue(ParameterDecoder.readValue(schema.freq));
27
27
  ifDefined(schema.Q?.value, value => q.setValue(value));
28
28
  ifDefined(schema.enabled?.value, value => enabled.setValue(value));
29
29
  };
@@ -34,6 +34,7 @@ export var BuiltinDevices;
34
34
  ifDefined(schema.enabled?.value, value => enabled.setValue(value));
35
35
  };
36
36
  return RevampDeviceBox.create(boxGraph, UUID.generate(), box => {
37
+ EffectParameterDefaults.defaultRevampDeviceBox(box);
37
38
  box.host.refer(field);
38
39
  box.index.setValue(index);
39
40
  box.label.setValue(equalizer.deviceName ?? "Revamp");
@@ -9,4 +9,4 @@ export declare namespace DawProjectImport {
9
9
  };
10
10
  const read: (schema: ProjectSchema, resources: DawProject.ResourceProvider) => Promise<Result>;
11
11
  }
12
- //# sourceMappingURL=DawProjectImport.d.ts.map
12
+ //# sourceMappingURL=DawProjectImporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DawProjectImporter.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProjectImporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAiBH,IAAI,EAEP,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAcH,aAAa,EAOhB,MAAM,yBAAyB,CAAA;AAuBhC,OAAO,EAAyC,eAAe,EAAY,MAAM,0BAA0B,CAAA;AAC3G,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAQvC,yBAAiB,gBAAgB,CAAC;IAW9B,KAAY,MAAM,GAAG;QACjB,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,QAAQ,EAAE,eAAe,CAAA;KAC5B,CAAA;IAOM,MAAM,IAAI,GAAU,QAAQ,aAAa,EAAE,WAAW,UAAU,CAAC,gBAAgB,KAAG,OAAO,CAAC,MAAM,CA2XxG,CAAA;CAaJ"}
@@ -251,7 +251,7 @@ export var DawProjectImport;
251
251
  }
252
252
  else if (isInstanceOf(timeline, PointsSchema)) {
253
253
  // TODO How to get the actual parameter?
254
- console.debug(timeline.target?.parameter);
254
+ // console.debug(timeline.target?.parameter)
255
255
  }
256
256
  }) ?? []);
257
257
  };
@@ -340,7 +340,13 @@ export var DawProjectImport;
340
340
  .map(readLane) ?? []);
341
341
  };
342
342
  await ifDefined(schema.arrangement, arrangement => readArrangement(arrangement));
343
- outputPointers.forEach(({ target, pointer }) => pointer.refer(asDefined(audioBusses.get(target), `${target} cannot be found.`).input));
343
+ outputPointers.forEach(({ target, pointer }) => {
344
+ const value = audioBusses.get(target);
345
+ // https://github.com/andremichelle/openDAW/issues/25
346
+ if (isDefined(value)) {
347
+ pointer.refer(value.input);
348
+ }
349
+ });
344
350
  rootBox.audioUnits.pointerHub.incoming().forEach(({ box }) => {
345
351
  const audioUnitBox = asInstanceOf(box, AudioUnitBox);
346
352
  if (audioUnitBox.type.getValue() !== AudioUnitType.Output
@@ -369,12 +375,18 @@ export var DawProjectImport;
369
375
  }
370
376
  boxGraph.endTransaction();
371
377
  boxGraph.verifyPointers();
372
- const { audioBusBox: masterBusBox, audioUnitBox: masterAudioUnit } = primaryAudioBusUnitOption.unwrap("Did not find a primary output");
378
+ const { audioBusBox: primaryAudioBus, audioUnitBox: primaryAudioOutputUnit } = primaryAudioBusUnitOption.unwrap("Did not find a primary output");
373
379
  return {
374
380
  audioIds: audioIdSet.values(),
375
381
  skeleton: {
376
382
  boxGraph,
377
- mandatoryBoxes: { rootBox, timelineBox, masterBusBox, masterAudioUnit, userInterfaceBox }
383
+ mandatoryBoxes: {
384
+ rootBox,
385
+ timelineBox,
386
+ primaryAudioBus,
387
+ primaryAudioOutputUnit,
388
+ userInterfaceBoxes: [userInterfaceBox]
389
+ }
378
390
  }
379
391
  };
380
392
  };
@@ -386,7 +398,7 @@ export var DawProjectImport;
386
398
  visitTapeDeviceBox: () => TrackType.Audio,
387
399
  visitNanoDeviceBox: () => TrackType.Notes,
388
400
  visitPlayfieldDeviceBox: () => TrackType.Notes,
389
- visitVaporisateurDeviceBox: () => TrackType.Notes
401
+ visitVaporisateurDeviceBox: () => TrackType.Notes,
390
402
  }) ?? TrackType.Undefined;
391
403
  };
392
404
  })(DawProjectImport || (DawProjectImport = {}));
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DawProjectImporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DawProjectImporter.test.d.ts","sourceRoot":"","sources":["../../src/dawproject/DawProjectImporter.test.ts"],"names":[],"mappings":""}
@@ -3,7 +3,7 @@ import { fileURLToPath } from "url";
3
3
  import * as path from "node:path";
4
4
  import * as fs from "node:fs";
5
5
  import { DawProject } from "./DawProject";
6
- import { DawProjectImport } from "./DawProjectImport";
6
+ import { DawProjectImport } from "./DawProjectImporter";
7
7
  describe("DawProjectImport", () => {
8
8
  it("import", async () => {
9
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -5,7 +5,7 @@ import { Xml } from "@opendaw/lib-xml";
5
5
  import { MetaDataSchema } from "@opendaw/lib-dawproject";
6
6
  import { DawProject } from "./DawProject";
7
7
  import { FilePickerAcceptTypes } from "../FilePickerAcceptTypes";
8
- import { DawProjectImport } from "./DawProjectImport";
8
+ import { DawProjectImport } from "./DawProjectImporter";
9
9
  export class DawProjectService {
10
10
  sampleService;
11
11
  constructor(sampleService) {
@@ -1,5 +1,5 @@
1
1
  export * from "./DawProject";
2
2
  export * from "./DawProjectExporter";
3
- export * from "./DawProjectImport";
3
+ export * from "./DawProjectImporter";
4
4
  export * from "./DawProjectService";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dawproject/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dawproject/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA"}