@opendaw/studio-core 0.0.12 → 0.0.13
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/ProjectApi.d.ts +22 -6
- package/dist/ProjectApi.d.ts.map +1 -1
- package/dist/ProjectApi.js +22 -6
- package/dist/processors.js +1 -1
- package/dist/processors.js.map +3 -3
- package/dist/workers.js.map +1 -1
- package/package.json +16 -16
package/dist/ProjectApi.d.ts
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
import { float, int, Option } from "@opendaw/lib-std";
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
2
|
+
import { PointerField } from "@opendaw/lib-box";
|
3
|
+
import { AudioUnitType, Pointers } from "@opendaw/studio-enums";
|
4
|
+
import { AudioBusBox, NoteEventBox, NoteEventCollectionBox, NoteRegionBox, TrackBox, ValueRegionBox } from "@opendaw/studio-boxes";
|
5
|
+
import { AnyClipBox, AudioUnitBoxAdapter, DeviceHost, IconSymbol } from "@opendaw/studio-adapters";
|
5
6
|
import { Project } from "./Project";
|
6
7
|
import { InstrumentFactory } from "./InstrumentFactory";
|
7
8
|
import { InstrumentProduct } from "./InstrumentProduct";
|
@@ -13,7 +14,9 @@ export type ClipRegionOptions = {
|
|
13
14
|
hue?: number;
|
14
15
|
};
|
15
16
|
export type NoteEventParams = {
|
16
|
-
owner:
|
17
|
+
owner: {
|
18
|
+
events: PointerField<Pointers.NoteEventCollection>;
|
19
|
+
};
|
17
20
|
position: ppqn;
|
18
21
|
duration: ppqn;
|
19
22
|
pitch: int;
|
@@ -21,6 +24,18 @@ export type NoteEventParams = {
|
|
21
24
|
velocity?: float;
|
22
25
|
chance?: int;
|
23
26
|
};
|
27
|
+
export type NoteRegionParams = {
|
28
|
+
trackBox: TrackBox;
|
29
|
+
position: ppqn;
|
30
|
+
duration: ppqn;
|
31
|
+
loopOffset?: ppqn;
|
32
|
+
loopDuration?: ppqn;
|
33
|
+
eventOffset?: ppqn;
|
34
|
+
eventCollection?: NoteEventCollectionBox;
|
35
|
+
mute?: boolean;
|
36
|
+
name?: string;
|
37
|
+
hue?: number;
|
38
|
+
};
|
24
39
|
export declare class ProjectApi {
|
25
40
|
#private;
|
26
41
|
static readonly AudioUnitOrdering: {
|
@@ -37,8 +52,9 @@ export declare class ProjectApi {
|
|
37
52
|
createAudioTrack(adapter: AudioUnitBoxAdapter, index?: int): TrackBox;
|
38
53
|
createAutomationTrack(adapter: AudioUnitBoxAdapter, index?: int): TrackBox;
|
39
54
|
createClip(trackBox: TrackBox, clipIndex: int, { name, hue }?: ClipRegionOptions): Option<AnyClipBox>;
|
40
|
-
|
41
|
-
|
55
|
+
createNoteRegion({ trackBox, position, duration, loopOffset, loopDuration, eventOffset, eventCollection, mute, name, hue }: NoteRegionParams): NoteRegionBox;
|
56
|
+
createTrackRegion(trackBox: TrackBox, position: ppqn, duration: ppqn, { name, hue }?: ClipRegionOptions): Option<NoteRegionBox> | Option<ValueRegionBox>;
|
57
|
+
createNoteEvent({ owner, position, duration, velocity, pitch, chance, cent }: NoteEventParams): NoteEventBox;
|
42
58
|
deleteAudioUnit(adapter: AudioUnitBoxAdapter): void;
|
43
59
|
}
|
44
60
|
//# sourceMappingURL=ProjectApi.d.ts.map
|
package/dist/ProjectApi.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ProjectApi.d.ts","sourceRoot":"","sources":["../src/ProjectApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,GAAG,EAAE,MAAM,EAAuB,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"ProjectApi.d.ts","sourceRoot":"","sources":["../src/ProjectApi.ts"],"names":[],"mappings":"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"}
|
package/dist/ProjectApi.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { assert, Option, panic, Strings, UUID } from "@opendaw/lib-std";
|
2
2
|
import { AudioUnitType } from "@opendaw/studio-enums";
|
3
3
|
import { AudioBusBox, AudioUnitBox, NoteClipBox, NoteEventBox, NoteEventCollectionBox, NoteRegionBox, TrackBox, ValueClipBox, ValueEventCollectionBox, ValueRegionBox } from "@opendaw/studio-boxes";
|
4
|
-
import { AudioUnitBoxAdapter, IconSymbol,
|
4
|
+
import { AudioUnitBoxAdapter, IconSymbol, TrackType } from "@opendaw/studio-adapters";
|
5
5
|
import { ColorCodes } from "./ColorCodes";
|
6
6
|
import { PPQN } from "@opendaw/lib-dsp";
|
7
7
|
export class ProjectApi {
|
@@ -104,7 +104,7 @@ export class ProjectApi {
|
|
104
104
|
const events = ValueEventCollectionBox.create(boxGraph, UUID.generate());
|
105
105
|
return Option.wrap(ValueClipBox.create(boxGraph, UUID.generate(), box => {
|
106
106
|
box.index.setValue(clipIndex);
|
107
|
-
box.label.setValue(name ?? "
|
107
|
+
box.label.setValue(name ?? "Automation");
|
108
108
|
box.hue.setValue(hue ?? ColorCodes.forTrackType(type));
|
109
109
|
box.mute.setValue(false);
|
110
110
|
box.duration.setValue(PPQN.Bar);
|
@@ -115,7 +115,23 @@ export class ProjectApi {
|
|
115
115
|
}
|
116
116
|
return Option.None;
|
117
117
|
}
|
118
|
-
|
118
|
+
createNoteRegion({ trackBox, position, duration, loopOffset, loopDuration, eventOffset, eventCollection, mute, name, hue }) {
|
119
|
+
const { boxGraph } = this.#project;
|
120
|
+
const events = eventCollection ?? NoteEventCollectionBox.create(boxGraph, UUID.generate());
|
121
|
+
return NoteRegionBox.create(boxGraph, UUID.generate(), box => {
|
122
|
+
box.position.setValue(position);
|
123
|
+
box.label.setValue(name ?? "Notes");
|
124
|
+
box.hue.setValue(hue ?? ColorCodes.forTrackType(trackBox.type.getValue()));
|
125
|
+
box.mute.setValue(mute ?? false);
|
126
|
+
box.duration.setValue(duration);
|
127
|
+
box.loopDuration.setValue(loopOffset ?? 0);
|
128
|
+
box.loopDuration.setValue(loopDuration ?? duration);
|
129
|
+
box.eventOffset.setValue(eventOffset ?? 0);
|
130
|
+
box.events.refer(events.owners);
|
131
|
+
box.regions.refer(trackBox.regions);
|
132
|
+
});
|
133
|
+
}
|
134
|
+
createTrackRegion(trackBox, position, duration, { name, hue } = {}) {
|
119
135
|
const { boxGraph } = this.#project;
|
120
136
|
const type = trackBox.type.getValue();
|
121
137
|
switch (type) {
|
@@ -149,8 +165,8 @@ export class ProjectApi {
|
|
149
165
|
return Option.None;
|
150
166
|
}
|
151
167
|
createNoteEvent({ owner, position, duration, velocity, pitch, chance, cent }) {
|
152
|
-
const {
|
153
|
-
return
|
168
|
+
const { boxGraph } = this.#project;
|
169
|
+
return NoteEventBox.create(boxGraph, UUID.generate(), box => {
|
154
170
|
box.position.setValue(position);
|
155
171
|
box.duration.setValue(duration);
|
156
172
|
box.velocity.setValue(velocity ?? 1.0);
|
@@ -160,7 +176,7 @@ export class ProjectApi {
|
|
160
176
|
box.events.refer(owner.events.targetVertex
|
161
177
|
.unwrap("Owner has no event-collection").box
|
162
178
|
.asBox(NoteEventCollectionBox).events);
|
163
|
-
})
|
179
|
+
});
|
164
180
|
}
|
165
181
|
deleteAudioUnit(adapter) {
|
166
182
|
const { rootBoxAdapter } = this.#project;
|