@opendaw/studio-core 0.0.7 → 0.0.9

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 (42) hide show
  1. package/dist/ColorCodes.d.ts +7 -0
  2. package/dist/ColorCodes.d.ts.map +1 -0
  3. package/dist/ColorCodes.js +32 -0
  4. package/dist/Colors.d.ts +15 -0
  5. package/dist/Colors.d.ts.map +1 -0
  6. package/dist/Colors.js +15 -0
  7. package/dist/Effects.d.ts +154 -0
  8. package/dist/Effects.d.ts.map +1 -0
  9. package/dist/Effects.js +166 -0
  10. package/dist/EngineWorklet.d.ts +0 -2
  11. package/dist/EngineWorklet.d.ts.map +1 -1
  12. package/dist/EngineWorklet.js +0 -4
  13. package/dist/MeterWorklet.d.ts +1 -4
  14. package/dist/MeterWorklet.d.ts.map +1 -1
  15. package/dist/MeterWorklet.js +1 -8
  16. package/dist/Modifier.d.ts +21 -0
  17. package/dist/Modifier.d.ts.map +1 -0
  18. package/dist/Modifier.js +168 -0
  19. package/dist/RecordingWorklet.d.ts +2 -5
  20. package/dist/RecordingWorklet.d.ts.map +1 -1
  21. package/dist/RecordingWorklet.js +2 -13
  22. package/dist/RenderQuantum.d.ts +2 -0
  23. package/dist/RenderQuantum.d.ts.map +1 -0
  24. package/dist/RenderQuantum.js +1 -0
  25. package/dist/Worklets.d.ts +3 -9
  26. package/dist/Worklets.d.ts.map +1 -1
  27. package/dist/Worklets.js +13 -18
  28. package/dist/index.d.ts +4 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +4 -1
  31. package/dist/processors.js +6 -0
  32. package/dist/processors.js.map +7 -0
  33. package/package.json +20 -24
  34. package/dist/WorkletFactory.d.ts +0 -8
  35. package/dist/WorkletFactory.d.ts.map +0 -1
  36. package/dist/WorkletFactory.js +0 -9
  37. package/dist/engine-processor.js +0 -6
  38. package/dist/engine-processor.js.map +0 -7
  39. package/dist/meter-processor.js +0 -2
  40. package/dist/meter-processor.js.map +0 -7
  41. package/dist/recording-processor.js +0 -4
  42. package/dist/recording-processor.js.map +0 -7
@@ -0,0 +1,168 @@
1
+ import { assert, Option, panic, UUID } from "@opendaw/lib-std";
2
+ import { PPQN } from "@opendaw/lib-dsp";
3
+ import { AudioUnitType } from "@opendaw/studio-enums";
4
+ import { AudioBusBox, AudioUnitBox, NoteClipBox, NoteEventCollectionBox, NoteRegionBox, TrackBox, ValueClipBox, ValueEventCollectionBox, ValueRegionBox } from "@opendaw/studio-boxes";
5
+ import { IconSymbol, TrackType } from "@opendaw/studio-adapters";
6
+ import { ColorCodes } from "./ColorCodes";
7
+ export var Modifier;
8
+ (function (Modifier) {
9
+ const AudioUnitOrdering = {
10
+ [AudioUnitType.Instrument]: 0,
11
+ [AudioUnitType.Aux]: 1,
12
+ [AudioUnitType.Bus]: 2,
13
+ [AudioUnitType.Output]: 3
14
+ };
15
+ Modifier.createAudioUnit = ({ boxGraph, rootBox, rootBoxAdapter, masterBusBox }, type, index) => {
16
+ const insertIndex = index ?? Modifier.pushAudioUnitsIndices(rootBoxAdapter, type, 1);
17
+ console.debug(`createAudioUnit type: ${type}, insertIndex: ${insertIndex}`);
18
+ return AudioUnitBox.create(boxGraph, UUID.generate(), box => {
19
+ box.collection.refer(rootBox.audioUnits);
20
+ box.output.refer(masterBusBox.input);
21
+ box.index.setValue(insertIndex);
22
+ box.type.setValue(type);
23
+ });
24
+ };
25
+ Modifier.pushAudioUnitsIndices = (rootBoxAdapter, type, count = 1) => {
26
+ const adapters = rootBoxAdapter.audioUnits.adapters();
27
+ const order = AudioUnitOrdering[type];
28
+ let index = 0 | 0;
29
+ for (; index < adapters.length; index++) {
30
+ if (AudioUnitOrdering[adapters[index].type] > order) {
31
+ break;
32
+ }
33
+ }
34
+ const insertIndex = index;
35
+ while (index < adapters.length) {
36
+ adapters[index].indexField.setValue(count + index++);
37
+ }
38
+ return insertIndex;
39
+ };
40
+ Modifier.deleteAudioUnit = ({ rootBoxAdapter }, adapter) => {
41
+ const adapters = rootBoxAdapter.audioUnits.adapters();
42
+ const boxIndex = adapter.indexField.getValue();
43
+ const deleteIndex = adapters.indexOf(adapter);
44
+ console.debug(`deleteAudioUnit adapter: ${adapter.toString()}, deleteIndex: ${deleteIndex}, indexField: ${boxIndex}`);
45
+ if (deleteIndex === -1) {
46
+ return panic(`Cannot delete ${adapter}. Does not exist.`);
47
+ }
48
+ if (deleteIndex !== boxIndex) {
49
+ console.debug("indices", adapters.map(x => x.box.index.getValue()).join(", "));
50
+ return panic(`Cannot delete ${adapter}. Wrong index.`);
51
+ }
52
+ for (let index = deleteIndex + 1; index < adapters.length; index++) {
53
+ adapters[index].indexField.setValue(index - 1);
54
+ }
55
+ adapter.box.delete();
56
+ };
57
+ Modifier.createAudioBus = (project, name, icon, type, color) => {
58
+ console.debug(`createAudioBus '${name}', type: ${type}, color: ${color}`);
59
+ const { rootBox, boxGraph } = project;
60
+ assert(rootBox.audioBusses.isAttached(), "rootBox not attached");
61
+ const uuid = UUID.generate();
62
+ const audioBusBox = AudioBusBox.create(boxGraph, uuid, box => {
63
+ box.collection.refer(rootBox.audioBusses);
64
+ box.label.setValue(name);
65
+ box.icon.setValue(IconSymbol.toName(icon));
66
+ box.color.setValue(color);
67
+ });
68
+ const audioUnitBox = Modifier.createAudioUnit(project, type);
69
+ TrackBox.create(boxGraph, UUID.generate(), box => {
70
+ box.tracks.refer(audioUnitBox.tracks);
71
+ box.target.refer(audioUnitBox);
72
+ box.index.setValue(0);
73
+ box.type.setValue(TrackType.Undefined);
74
+ });
75
+ audioBusBox.output.refer(audioUnitBox.input);
76
+ return audioBusBox;
77
+ };
78
+ Modifier.createEffect = (project, host, entry, newIndex) => {
79
+ let chain;
80
+ let field;
81
+ if (entry.type === "audio") {
82
+ chain = host.audioEffects.adapters();
83
+ field = host.audioEffects.field();
84
+ }
85
+ else if (entry.type === "midi") {
86
+ chain = host.midiEffects.adapters();
87
+ field = host.midiEffects.field();
88
+ }
89
+ else {
90
+ return panic(`Unknown factory type: ${entry.type}`);
91
+ }
92
+ return project.editing.modify(() => {
93
+ const box = entry.create(project, field, newIndex);
94
+ for (let index = newIndex; index < chain.length; index++) {
95
+ chain[index].indexField.setValue(index + 1);
96
+ }
97
+ return box;
98
+ });
99
+ };
100
+ Modifier.createClip = (clips, clipIndex, { name } = {}) => {
101
+ if (clips.collection.getAdapterByIndex(clipIndex).nonEmpty()) {
102
+ console.warn("Cannot create Clip on occupied cell.");
103
+ return Option.None;
104
+ }
105
+ const graph = clips.trackBoxAdapter.box.graph;
106
+ const type = clips.trackBoxAdapter.type;
107
+ switch (type) {
108
+ case TrackType.Notes: {
109
+ const events = NoteEventCollectionBox.create(graph, UUID.generate());
110
+ return Option.wrap(NoteClipBox.create(graph, UUID.generate(), box => {
111
+ box.index.setValue(clipIndex);
112
+ box.label.setValue(name ?? "Notes");
113
+ box.hue.setValue(ColorCodes.forTrackType(type));
114
+ box.mute.setValue(false);
115
+ box.duration.setValue(PPQN.Bar);
116
+ box.clips.refer(clips.trackBoxAdapter.box.clips);
117
+ box.events.refer(events.owners);
118
+ }));
119
+ }
120
+ case TrackType.Value: {
121
+ const events = ValueEventCollectionBox.create(graph, UUID.generate());
122
+ return Option.wrap(ValueClipBox.create(graph, UUID.generate(), box => {
123
+ box.index.setValue(clipIndex);
124
+ box.label.setValue(name ?? "CV");
125
+ box.hue.setValue(ColorCodes.forTrackType(type));
126
+ box.mute.setValue(false);
127
+ box.duration.setValue(PPQN.Bar);
128
+ box.events.refer(events.owners);
129
+ box.clips.refer(clips.trackBoxAdapter.box.clips);
130
+ }));
131
+ }
132
+ }
133
+ return Option.None;
134
+ };
135
+ Modifier.createRegion = (regions, position, duration, { name } = {}) => {
136
+ const graph = regions.trackBoxAdapter.box.graph;
137
+ const type = regions.trackBoxAdapter.type;
138
+ switch (type) {
139
+ case TrackType.Notes: {
140
+ const events = NoteEventCollectionBox.create(graph, UUID.generate());
141
+ return Option.wrap(NoteRegionBox.create(graph, UUID.generate(), box => {
142
+ box.position.setValue(Math.max(position, 0));
143
+ box.label.setValue(name ?? "Notes");
144
+ box.hue.setValue(ColorCodes.forTrackType(type));
145
+ box.mute.setValue(false);
146
+ box.duration.setValue(duration);
147
+ box.loopDuration.setValue(PPQN.Bar);
148
+ box.events.refer(events.owners);
149
+ box.regions.refer(regions.trackBoxAdapter.box.regions);
150
+ }));
151
+ }
152
+ case TrackType.Value: {
153
+ const events = ValueEventCollectionBox.create(graph, UUID.generate());
154
+ return Option.wrap(ValueRegionBox.create(graph, UUID.generate(), box => {
155
+ box.position.setValue(Math.max(position, 0));
156
+ box.label.setValue(name ?? "Automation");
157
+ box.hue.setValue(ColorCodes.forTrackType(type));
158
+ box.mute.setValue(false);
159
+ box.duration.setValue(duration);
160
+ box.loopDuration.setValue(PPQN.Bar);
161
+ box.events.refer(events.owners);
162
+ box.regions.refer(regions.trackBoxAdapter.box.regions);
163
+ }));
164
+ }
165
+ }
166
+ return Option.None;
167
+ };
168
+ })(Modifier || (Modifier = {}));
@@ -1,9 +1,6 @@
1
- import { int } from "@opendaw/lib-std";
2
- import { WorkletFactory } from "./WorkletFactory";
1
+ import { RingBuffer } from "@opendaw/studio-adapters";
3
2
  export declare class RecordingWorklet extends AudioWorkletNode {
4
3
  #private;
5
- static bootFactory(context: BaseAudioContext, url: string): Promise<WorkletFactory<RecordingWorklet>>;
6
- static create(factory: WorkletFactory<RecordingWorklet>, numChannels: int, numChunks?: int): RecordingWorklet;
7
- private constructor();
4
+ constructor(context: BaseAudioContext, config: RingBuffer.Config);
8
5
  }
9
6
  //# sourceMappingURL=RecordingWorklet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecordingWorklet.d.ts","sourceRoot":"","sources":["../src/RecordingWorklet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAK/C,qBAAa,gBAAiB,SAAQ,gBAAgB;;WACrC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAI3G,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,GAAE,GAAQ,GAAG,gBAAgB;IAUjH,OAAO;CAuBV"}
1
+ {"version":3,"file":"RecordingWorklet.d.ts","sourceRoot":"","sources":["../src/RecordingWorklet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,UAAU,EAAC,MAAM,0BAA0B,CAAA;AAIrE,qBAAa,gBAAiB,SAAQ,gBAAgB;;gBAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;CAuBnE"}
@@ -1,25 +1,14 @@
1
1
  import { EmptyExec } from "@opendaw/lib-std";
2
2
  import { Files } from "@opendaw/lib-dom";
3
3
  import { mergeChunkPlanes, RingBuffer } from "@opendaw/studio-adapters";
4
- import { WorkletFactory } from "./WorkletFactory";
5
4
  import { encodeWavFloat } from "./Wav";
6
- const RenderQuantum = 128;
5
+ import { RenderQuantum } from "./RenderQuantum";
7
6
  export class RecordingWorklet extends AudioWorkletNode {
8
- static async bootFactory(context, url) {
9
- return WorkletFactory.boot(context, url);
10
- }
11
- static create(factory, numChannels, numChunks = 64) {
12
- const audioBytes = numChannels * numChunks * RenderQuantum * Float32Array.BYTES_PER_ELEMENT;
13
- const pointerBytes = Int32Array.BYTES_PER_ELEMENT * 2;
14
- const sab = new SharedArrayBuffer(audioBytes + pointerBytes);
15
- const buffer = { sab, numChunks, numChannels, bufferSize: RenderQuantum };
16
- return factory.create(context => new RecordingWorklet(context, buffer));
17
- }
18
7
  #reader;
19
8
  constructor(context, config) {
20
9
  super(context, "recording-processor", {
21
10
  numberOfInputs: 1,
22
- channelCount: config.numChannels,
11
+ channelCount: config.numberOfChannels,
23
12
  channelCountMode: "explicit",
24
13
  processorOptions: config
25
14
  });
@@ -0,0 +1,2 @@
1
+ export declare const RenderQuantum = 128;
2
+ //# sourceMappingURL=RenderQuantum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderQuantum.d.ts","sourceRoot":"","sources":["../src/RenderQuantum.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,MAAM,CAAA"}
@@ -0,0 +1 @@
1
+ export const RenderQuantum = 128;
@@ -1,20 +1,14 @@
1
1
  import { int } from "@opendaw/lib-std";
2
2
  import { ExportStemsConfiguration } from "@opendaw/studio-adapters";
3
- import { WorkletFactory } from "./WorkletFactory";
4
3
  import { EngineWorklet } from "./EngineWorklet";
5
4
  import { MeterWorklet } from "./MeterWorklet";
6
5
  import { RecordingWorklet } from "./RecordingWorklet";
7
6
  import { Project } from "./Project";
8
- export type WorkletUrls = {
9
- meter: string;
10
- engine: string;
11
- recording: string;
12
- };
13
7
  export declare class Worklets {
14
8
  #private;
15
- static install(context: AudioContext, { engine, meter, recording }: WorkletUrls): Promise<Worklets>;
16
- static get(context: AudioContext): Worklets;
17
- constructor(engine: WorkletFactory<EngineWorklet>, meter: WorkletFactory<MeterWorklet>, recording: WorkletFactory<RecordingWorklet>);
9
+ static install(context: BaseAudioContext, workletURL: string): Promise<Worklets>;
10
+ static get(context: BaseAudioContext): Worklets;
11
+ constructor(context: BaseAudioContext);
18
12
  createMeter(numberOfChannels: int): MeterWorklet;
19
13
  createEngine(project: Project, exportConfiguration?: ExportStemsConfiguration): EngineWorklet;
20
14
  createRecording(numberOfChannels: int, numChunks: int): RecordingWorklet;
@@ -1 +1 @@
1
- {"version":3,"file":"Worklets.d.ts","sourceRoot":"","sources":["../src/Worklets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,QAAQ;;WACJ,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYvG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ;gBAQ/B,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,EACrC,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,EACnC,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC;IAMvD,WAAW,CAAC,gBAAgB,EAAE,GAAG,GAAG,YAAY;IAIhD,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,wBAAwB,GAAG,aAAa;IAI7F,eAAe,CAAC,gBAAgB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,gBAAgB;CAG3E"}
1
+ {"version":3,"file":"Worklets.d.ts","sourceRoot":"","sources":["../src/Worklets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,wBAAwB,EAAa,MAAM,0BAA0B,CAAA;AAC7E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,qBAAa,QAAQ;;WACJ,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQtF,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ;gBAMnC,OAAO,EAAE,gBAAgB;IAErC,WAAW,CAAC,gBAAgB,EAAE,GAAG,GAAG,YAAY;IAIhD,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,wBAAwB,GAAG,aAAa;IAI7F,eAAe,CAAC,gBAAgB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,gBAAgB;CAO3E"}
package/dist/Worklets.js CHANGED
@@ -2,35 +2,30 @@ import { asDefined } from "@opendaw/lib-std";
2
2
  import { EngineWorklet } from "./EngineWorklet";
3
3
  import { MeterWorklet } from "./MeterWorklet";
4
4
  import { RecordingWorklet } from "./RecordingWorklet";
5
+ import { RenderQuantum } from "./RenderQuantum";
5
6
  export class Worklets {
6
- static async install(context, { engine, meter, recording }) {
7
- return Promise.all([
8
- EngineWorklet.bootFactory(context, engine),
9
- MeterWorklet.bootFactory(context, meter),
10
- RecordingWorklet.bootFactory(context, recording)
11
- ]).then(([engine, meter, recording]) => {
12
- const worklets = new Worklets(engine, meter, recording);
7
+ static async install(context, workletURL) {
8
+ return context.audioWorklet.addModule(workletURL).then(() => {
9
+ const worklets = new Worklets(context);
13
10
  this.#map.set(context, worklets);
14
11
  return worklets;
15
12
  });
16
13
  }
17
14
  static get(context) { return asDefined(this.#map.get(context), "Worklets not installed"); }
18
15
  static #map = new WeakMap();
19
- #meter;
20
- #engine;
21
- #recording;
22
- constructor(engine, meter, recording) {
23
- this.#meter = meter;
24
- this.#engine = engine;
25
- this.#recording = recording;
26
- }
16
+ #context;
17
+ constructor(context) { this.#context = context; }
27
18
  createMeter(numberOfChannels) {
28
- return MeterWorklet.create(this.#meter, numberOfChannels);
19
+ return new MeterWorklet(this.#context, numberOfChannels);
29
20
  }
30
21
  createEngine(project, exportConfiguration) {
31
- return this.#engine.create(context => new EngineWorklet(context, project, exportConfiguration));
22
+ return new EngineWorklet(this.#context, project, exportConfiguration);
32
23
  }
33
24
  createRecording(numberOfChannels, numChunks) {
34
- return RecordingWorklet.create(this.#recording, numberOfChannels, numChunks);
25
+ const audioBytes = numberOfChannels * numChunks * RenderQuantum * Float32Array.BYTES_PER_ELEMENT;
26
+ const pointerBytes = Int32Array.BYTES_PER_ELEMENT * 2;
27
+ const sab = new SharedArrayBuffer(audioBytes + pointerBytes);
28
+ const buffer = { sab, numChunks, numberOfChannels, bufferSize: RenderQuantum };
29
+ return new RecordingWorklet(this.#context, buffer);
35
30
  }
36
31
  }
package/dist/index.d.ts CHANGED
@@ -6,14 +6,17 @@ export * from "./samples/SampleStorage";
6
6
  export * from "./samples/MainThreadSampleLoader";
7
7
  export * from "./samples/MainThreadSampleManager";
8
8
  export * from "./samples/SampleProvider";
9
+ export * from "./ColorCodes";
10
+ export * from "./Colors";
11
+ export * from "./Effects";
9
12
  export * from "./Engine";
10
13
  export * from "./EngineFacade";
11
14
  export * from "./EngineWorklet";
12
15
  export * from "./Mixer";
16
+ export * from "./Modifier";
13
17
  export * from "./Project";
14
18
  export * from "./ProjectEnv";
15
19
  export * from "./Wav";
16
20
  export * from "./WorkerAgents";
17
- export * from "./WorkletFactory";
18
21
  export * from "./Worklets";
19
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AAExC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AAExC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -6,13 +6,16 @@ export * from "./samples/SampleStorage";
6
6
  export * from "./samples/MainThreadSampleLoader";
7
7
  export * from "./samples/MainThreadSampleManager";
8
8
  export * from "./samples/SampleProvider";
9
+ export * from "./ColorCodes";
10
+ export * from "./Colors";
11
+ export * from "./Effects";
9
12
  export * from "./Engine";
10
13
  export * from "./EngineFacade";
11
14
  export * from "./EngineWorklet";
12
15
  export * from "./Mixer";
16
+ export * from "./Modifier";
13
17
  export * from "./Project";
14
18
  export * from "./ProjectEnv";
15
19
  export * from "./Wav";
16
20
  export * from "./WorkerAgents";
17
- export * from "./WorkletFactory";
18
21
  export * from "./Worklets";