@opendaw/studio-scripting 0.0.24 → 0.0.26
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/Api.d.ts +96 -9
- package/dist/Api.d.ts.map +1 -1
- package/dist/Api.js +3 -2
- package/dist/AudioEffectFactory.js +1 -1
- package/dist/AudioUnitBoxFactory.d.ts.map +1 -1
- package/dist/AudioUnitBoxFactory.js +102 -1
- package/dist/ScriptRunner.d.ts.map +1 -1
- package/dist/ScriptRunner.js +3 -2
- package/dist/impl/DelayEffectImpl.d.ts +8 -1
- package/dist/impl/DelayEffectImpl.d.ts.map +1 -1
- package/dist/impl/DelayEffectImpl.js +24 -2
- package/dist/impl/InstrumentAudioUnitImpl.d.ts +3 -2
- package/dist/impl/InstrumentAudioUnitImpl.d.ts.map +1 -1
- package/dist/impl/InstrumentAudioUnitImpl.js +4 -4
- package/dist/impl/InstrumentImpl.d.ts +5 -2
- package/dist/impl/InstrumentImpl.d.ts.map +1 -1
- package/dist/impl/InstrumentImpl.js +3 -3
- package/dist/impl/ProjectImpl.d.ts +2 -2
- package/dist/impl/ProjectImpl.d.ts.map +1 -1
- package/dist/impl/ProjectImpl.js +2 -2
- package/package.json +9 -9
package/dist/Api.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { AudioData, Chord, dbToGain, FFT, gainToDb, Interpolation, midiToHz, PPQN, ppqn } from "@opendaw/lib-dsp";
|
|
2
|
-
import { bipolar, float, int, Nullable, unitValue } from "@opendaw/lib-std";
|
|
1
|
+
import { AudioData, Chord, ClassicWaveform, dbToGain, FFT, gainToDb, Interpolation, midiToHz, PPQN, ppqn } from "@opendaw/lib-dsp";
|
|
2
|
+
import { bipolar, float, int, Nullable, Procedure, unitValue } from "@opendaw/lib-std";
|
|
3
3
|
import { Sample } from "@opendaw/studio-adapters";
|
|
4
|
-
|
|
4
|
+
import { VoicingMode } from "@opendaw/studio-enums";
|
|
5
|
+
export { PPQN, FFT, Chord, Sample, dbToGain, gainToDb, midiToHz, ClassicWaveform, VoicingMode };
|
|
6
|
+
export type { Procedure };
|
|
5
7
|
export declare enum AudioPlayback {
|
|
6
8
|
NoWarp = 0,
|
|
7
9
|
PitchStretch = 1
|
|
@@ -36,18 +38,32 @@ export interface AudioEffect extends Effect {
|
|
|
36
38
|
readonly key: keyof AudioEffects;
|
|
37
39
|
}
|
|
38
40
|
export interface DelayEffect extends AudioEffect {
|
|
41
|
+
/** Pre-delay left sync time index (0-11): Off, 1/16, 1/12, 1/8, 1/6, 3/16, 1/4, 5/16, 1/3, 3/8, 7/16, 1/2 */
|
|
42
|
+
preSyncTimeLeft: number;
|
|
43
|
+
/** Pre-delay left milliseconds offset (0-500 ms) */
|
|
44
|
+
preMillisTimeLeft: number;
|
|
45
|
+
/** Pre-delay right sync time index (0-11): Off, 1/16, 1/12, 1/8, 1/6, 3/16, 1/4, 5/16, 1/3, 3/8, 7/16, 1/2 */
|
|
46
|
+
preSyncTimeRight: number;
|
|
47
|
+
/** Pre-delay right milliseconds offset (0-500 ms) */
|
|
48
|
+
preMillisTimeRight: number;
|
|
39
49
|
/** Delay time index (0-16): 1/1, 1/2, 1/3, 1/4, 3/16, 1/6, 1/8, 3/32, 1/12, 1/16, 3/64, 1/24, 1/32, 1/48, 1/64, 1/96, 1/128 note fractions */
|
|
40
50
|
delay: number;
|
|
51
|
+
/** Additional delay time in milliseconds (0-500 ms) */
|
|
52
|
+
millisTime: number;
|
|
41
53
|
/** Feedback amount (0.0 to 1.0) */
|
|
42
54
|
feedback: number;
|
|
43
55
|
/** Cross-feedback amount (0.0 to 1.0) */
|
|
44
56
|
cross: number;
|
|
45
|
-
/**
|
|
57
|
+
/** LFO speed in Hz (0.1 to 25) */
|
|
58
|
+
lfoSpeed: number;
|
|
59
|
+
/** LFO depth in milliseconds (0-50 ms) */
|
|
60
|
+
lfoDepth: number;
|
|
61
|
+
/** Filter cutoff (-1.0 = lowpass, 0.0 = off, 1.0 = highpass) */
|
|
46
62
|
filter: number;
|
|
47
|
-
/**
|
|
48
|
-
wet: number;
|
|
49
|
-
/** Dry (original) signal level (0.0 to 1.0) */
|
|
63
|
+
/** Dry (original) signal level in dB */
|
|
50
64
|
dry: number;
|
|
65
|
+
/** Wet (processed) signal level in dB */
|
|
66
|
+
wet: number;
|
|
51
67
|
}
|
|
52
68
|
export interface AudioEffects {
|
|
53
69
|
"delay": DelayEffect;
|
|
@@ -203,8 +219,79 @@ export interface MIDIInstrument extends Instrument {
|
|
|
203
219
|
}
|
|
204
220
|
export interface AudioInstrument extends Instrument {
|
|
205
221
|
}
|
|
206
|
-
/**
|
|
222
|
+
/** Vaporisateur oscillator configuration */
|
|
223
|
+
export interface VaporisateurOscillator {
|
|
224
|
+
/** Waveform type (sine, triangle, saw, square) */
|
|
225
|
+
waveform: ClassicWaveform;
|
|
226
|
+
/** Volume in decibels */
|
|
227
|
+
volume: number;
|
|
228
|
+
/** Octave offset (-3 to 3) */
|
|
229
|
+
octave: int;
|
|
230
|
+
/** Fine-tuning in cents (-1200 to 1200) */
|
|
231
|
+
tune: float;
|
|
232
|
+
}
|
|
233
|
+
/** Vaporisateur LFO configuration */
|
|
234
|
+
export interface VaporisateurLFO {
|
|
235
|
+
/** LFO waveform type (sine, triangle, saw, square) */
|
|
236
|
+
waveform: ClassicWaveform;
|
|
237
|
+
/** LFO rate in Hz (0.0001 to 30) */
|
|
238
|
+
rate: float;
|
|
239
|
+
/** Sync LFO to tempo */
|
|
240
|
+
sync: boolean;
|
|
241
|
+
/** LFO modulation amount to pitch (-1.0 to 1.0) */
|
|
242
|
+
targetTune: bipolar;
|
|
243
|
+
/** LFO modulation amount to filter cutoff (-1.0 to 1.0) */
|
|
244
|
+
targetCutoff: bipolar;
|
|
245
|
+
/** LFO modulation amount to volume (-1.0 to 1.0) */
|
|
246
|
+
targetVolume: bipolar;
|
|
247
|
+
}
|
|
248
|
+
/** Vaporisateur noise generator configuration */
|
|
249
|
+
export interface VaporisateurNoise {
|
|
250
|
+
/** Attack time in seconds (0.001 to 5.0) */
|
|
251
|
+
attack: float;
|
|
252
|
+
/** Hold time in seconds (0.001 to 5.0) */
|
|
253
|
+
hold: float;
|
|
254
|
+
/** Release time in seconds (0.001 to 5.0) */
|
|
255
|
+
release: float;
|
|
256
|
+
/** Volume in decibels */
|
|
257
|
+
volume: number;
|
|
258
|
+
}
|
|
259
|
+
/** Classic subtractive synthesizer instrument */
|
|
207
260
|
export interface Vaporisateur extends MIDIInstrument {
|
|
261
|
+
/** Filter cutoff frequency in Hz (20 to 20000) */
|
|
262
|
+
cutoff: float;
|
|
263
|
+
/** Filter resonance (0.01 to 10.0) */
|
|
264
|
+
resonance: float;
|
|
265
|
+
/** Filter order/poles (1, 2, 3 or 4) */
|
|
266
|
+
filterOrder: 1 | 2 | 3 | 4;
|
|
267
|
+
/** Filter envelope modulation amount (-1.0 to 1.0) */
|
|
268
|
+
filterEnvelope: bipolar;
|
|
269
|
+
/** Filter keyboard tracking amount (-1.0 to 1.0) */
|
|
270
|
+
filterKeyboard: bipolar;
|
|
271
|
+
/** Amplitude envelope attack time in seconds (0.001 to 5.0) */
|
|
272
|
+
attack: float;
|
|
273
|
+
/** Amplitude envelope decay time in seconds (0.001 to 5.0) */
|
|
274
|
+
decay: float;
|
|
275
|
+
/** Amplitude envelope sustain level (0.0 to 1.0) */
|
|
276
|
+
sustain: unitValue;
|
|
277
|
+
/** Amplitude envelope release time in seconds (0.001 to 5.0) */
|
|
278
|
+
release: float;
|
|
279
|
+
/** Voice mode (monophonic or polyphonic) */
|
|
280
|
+
voicingMode: VoicingMode;
|
|
281
|
+
/** Glide/portamento time (0.0 to 1.0) */
|
|
282
|
+
glideTime: unitValue;
|
|
283
|
+
/** Number of unison voices (1, 3 or 5) */
|
|
284
|
+
unisonCount: 1 | 3 | 5;
|
|
285
|
+
/** Unison detune amount in cents (1 to 1200) */
|
|
286
|
+
unisonDetune: float;
|
|
287
|
+
/** Unison stereo spread (0.0 to 1.0) */
|
|
288
|
+
unisonStereo: unitValue;
|
|
289
|
+
/** LFO configuration */
|
|
290
|
+
lfo: VaporisateurLFO;
|
|
291
|
+
/** Two oscillators */
|
|
292
|
+
oscillators: [VaporisateurOscillator, VaporisateurOscillator];
|
|
293
|
+
/** Noise generator configuration */
|
|
294
|
+
noise: VaporisateurNoise;
|
|
208
295
|
}
|
|
209
296
|
/** Sample-based playback instrument */
|
|
210
297
|
export interface Playfield extends MIDIInstrument {
|
|
@@ -242,7 +329,7 @@ export interface Project {
|
|
|
242
329
|
denominator: int;
|
|
243
330
|
};
|
|
244
331
|
/** Add an instrument track to the project */
|
|
245
|
-
addInstrumentUnit<KEY extends keyof Instruments>(name: KEY,
|
|
332
|
+
addInstrumentUnit<KEY extends keyof Instruments>(name: KEY, constructor?: Procedure<Instruments[KEY]>): InstrumentAudioUnit;
|
|
246
333
|
/** Add an auxiliary effects track */
|
|
247
334
|
addAuxUnit(props?: Partial<Pick<AuxAudioUnit, "label">>): AuxAudioUnit;
|
|
248
335
|
/** Add a group track for mixing multiple units */
|
package/dist/Api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../src/Api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../src/Api.ts"],"names":[],"mappings":"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"}
|
package/dist/Api.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Chord, dbToGain, FFT, gainToDb, midiToHz, PPQN } from "@opendaw/lib-dsp";
|
|
1
|
+
import { Chord, ClassicWaveform, dbToGain, FFT, gainToDb, midiToHz, PPQN } from "@opendaw/lib-dsp";
|
|
2
2
|
import { Sample } from "@opendaw/studio-adapters";
|
|
3
|
-
|
|
3
|
+
import { VoicingMode } from "@opendaw/studio-enums";
|
|
4
|
+
export { PPQN, FFT, Chord, Sample, dbToGain, gainToDb, midiToHz, ClassicWaveform, VoicingMode };
|
|
4
5
|
export var AudioPlayback;
|
|
5
6
|
(function (AudioPlayback) {
|
|
6
7
|
AudioPlayback[AudioPlayback["NoWarp"] = 0] = "NoWarp";
|
|
@@ -5,7 +5,7 @@ export class AudioEffectFactory {
|
|
|
5
5
|
switch (effect.key) {
|
|
6
6
|
case "delay": {
|
|
7
7
|
return DelayDeviceBox.create(boxGraph, UUID.generate(), box => {
|
|
8
|
-
box.
|
|
8
|
+
box.delayMusical.setValue(effect.delay);
|
|
9
9
|
box.feedback.setValue(effect.feedback);
|
|
10
10
|
box.cross.setValue(effect.cross);
|
|
11
11
|
box.filter.setValue(effect.filter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioUnitBoxFactory.d.ts","sourceRoot":"","sources":["../src/AudioUnitBoxFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoD,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAC3G,OAAO,EAAgE,WAAW,EAAW,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"AudioUnitBoxFactory.d.ts","sourceRoot":"","sources":["../src/AudioUnitBoxFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoD,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAC3G,OAAO,EAAgE,WAAW,EAAW,MAAM,QAAQ,CAAA;AAU3G,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,MAAM,GAAI,UAAU,eAAe,EAAE,SAAS,WAAW,KAAG,IAiIxE,CAAA;CA0FJ"}
|
|
@@ -40,9 +40,22 @@ export var AudioUnitBoxFactory;
|
|
|
40
40
|
audioUnitBox.volume.setValue(volume);
|
|
41
41
|
audioUnitBox.panning.setValue(panning);
|
|
42
42
|
if (factory === InstrumentFactories.Nano) {
|
|
43
|
-
const
|
|
43
|
+
const constructorFn = instrument.constructorFn;
|
|
44
|
+
let sample;
|
|
45
|
+
if (isDefined(constructorFn)) {
|
|
46
|
+
const wrapper = { sample: undefined };
|
|
47
|
+
constructorFn(wrapper);
|
|
48
|
+
sample = wrapper.sample;
|
|
49
|
+
}
|
|
44
50
|
factory.create(boxGraph, audioUnitBox.input, factory.defaultName, factory.defaultIcon, isDefined(sample) ? AudioFileBoxfactory.create(boxGraph, sample) : undefined);
|
|
45
51
|
}
|
|
52
|
+
else if (factory === InstrumentFactories.Vaporisateur) {
|
|
53
|
+
const deviceBox = factory.create(boxGraph, audioUnitBox.input, factory.defaultName, factory.defaultIcon);
|
|
54
|
+
const constructorFn = instrument.constructorFn;
|
|
55
|
+
if (isDefined(constructorFn)) {
|
|
56
|
+
constructorFn(createVaporisateurWrapper(deviceBox));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
46
59
|
else {
|
|
47
60
|
factory.create(boxGraph, audioUnitBox.input, factory.defaultName, factory.defaultIcon);
|
|
48
61
|
}
|
|
@@ -113,4 +126,92 @@ export var AudioUnitBoxFactory;
|
|
|
113
126
|
}
|
|
114
127
|
});
|
|
115
128
|
};
|
|
129
|
+
const createVaporisateurWrapper = (box) => {
|
|
130
|
+
const oscFields = box.oscillators.fields();
|
|
131
|
+
return {
|
|
132
|
+
// Instrument base (readonly, not used in constructor)
|
|
133
|
+
get audioUnit() { return undefined; },
|
|
134
|
+
// Filter
|
|
135
|
+
get cutoff() { return box.cutoff.getValue(); },
|
|
136
|
+
set cutoff(v) { box.cutoff.setValue(v); },
|
|
137
|
+
get resonance() { return box.resonance.getValue(); },
|
|
138
|
+
set resonance(v) { box.resonance.setValue(v); },
|
|
139
|
+
get filterOrder() { return box.filterOrder.getValue(); },
|
|
140
|
+
set filterOrder(v) { box.filterOrder.setValue(v); },
|
|
141
|
+
get filterEnvelope() { return box.filterEnvelope.getValue(); },
|
|
142
|
+
set filterEnvelope(v) { box.filterEnvelope.setValue(v); },
|
|
143
|
+
get filterKeyboard() { return box.filterKeyboard.getValue(); },
|
|
144
|
+
set filterKeyboard(v) { box.filterKeyboard.setValue(v); },
|
|
145
|
+
// Envelope
|
|
146
|
+
get attack() { return box.attack.getValue(); },
|
|
147
|
+
set attack(v) { box.attack.setValue(v); },
|
|
148
|
+
get decay() { return box.decay.getValue(); },
|
|
149
|
+
set decay(v) { box.decay.setValue(v); },
|
|
150
|
+
get sustain() { return box.sustain.getValue(); },
|
|
151
|
+
set sustain(v) { box.sustain.setValue(v); },
|
|
152
|
+
get release() { return box.release.getValue(); },
|
|
153
|
+
set release(v) { box.release.setValue(v); },
|
|
154
|
+
// Voice
|
|
155
|
+
get voicingMode() { return box.voicingMode.getValue(); },
|
|
156
|
+
set voicingMode(v) { box.voicingMode.setValue(v); },
|
|
157
|
+
get glideTime() { return box.glideTime.getValue(); },
|
|
158
|
+
set glideTime(v) { box.glideTime.setValue(v); },
|
|
159
|
+
// Unison
|
|
160
|
+
get unisonCount() { return box.unisonCount.getValue(); },
|
|
161
|
+
set unisonCount(v) { box.unisonCount.setValue(v); },
|
|
162
|
+
get unisonDetune() { return box.unisonDetune.getValue(); },
|
|
163
|
+
set unisonDetune(v) { box.unisonDetune.setValue(v); },
|
|
164
|
+
get unisonStereo() { return box.unisonStereo.getValue(); },
|
|
165
|
+
set unisonStereo(v) { box.unisonStereo.setValue(v); },
|
|
166
|
+
// LFO
|
|
167
|
+
lfo: {
|
|
168
|
+
get waveform() { return box.lfo.waveform.getValue(); },
|
|
169
|
+
set waveform(v) { box.lfo.waveform.setValue(v); },
|
|
170
|
+
get rate() { return box.lfo.rate.getValue(); },
|
|
171
|
+
set rate(v) { box.lfo.rate.setValue(v); },
|
|
172
|
+
get sync() { return box.lfo.sync.getValue(); },
|
|
173
|
+
set sync(v) { box.lfo.sync.setValue(v); },
|
|
174
|
+
get targetTune() { return box.lfo.targetTune.getValue(); },
|
|
175
|
+
set targetTune(v) { box.lfo.targetTune.setValue(v); },
|
|
176
|
+
get targetCutoff() { return box.lfo.targetCutoff.getValue(); },
|
|
177
|
+
set targetCutoff(v) { box.lfo.targetCutoff.setValue(v); },
|
|
178
|
+
get targetVolume() { return box.lfo.targetVolume.getValue(); },
|
|
179
|
+
set targetVolume(v) { box.lfo.targetVolume.setValue(v); }
|
|
180
|
+
},
|
|
181
|
+
// Oscillators
|
|
182
|
+
oscillators: [
|
|
183
|
+
{
|
|
184
|
+
get waveform() { return oscFields[0].waveform.getValue(); },
|
|
185
|
+
set waveform(v) { oscFields[0].waveform.setValue(v); },
|
|
186
|
+
get volume() { return oscFields[0].volume.getValue(); },
|
|
187
|
+
set volume(v) { oscFields[0].volume.setValue(v); },
|
|
188
|
+
get octave() { return oscFields[0].octave.getValue(); },
|
|
189
|
+
set octave(v) { oscFields[0].octave.setValue(v); },
|
|
190
|
+
get tune() { return oscFields[0].tune.getValue(); },
|
|
191
|
+
set tune(v) { oscFields[0].tune.setValue(v); }
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
get waveform() { return oscFields[1].waveform.getValue(); },
|
|
195
|
+
set waveform(v) { oscFields[1].waveform.setValue(v); },
|
|
196
|
+
get volume() { return oscFields[1].volume.getValue(); },
|
|
197
|
+
set volume(v) { oscFields[1].volume.setValue(v); },
|
|
198
|
+
get octave() { return oscFields[1].octave.getValue(); },
|
|
199
|
+
set octave(v) { oscFields[1].octave.setValue(v); },
|
|
200
|
+
get tune() { return oscFields[1].tune.getValue(); },
|
|
201
|
+
set tune(v) { oscFields[1].tune.setValue(v); }
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
// Noise
|
|
205
|
+
noise: {
|
|
206
|
+
get attack() { return box.noise.attack.getValue(); },
|
|
207
|
+
set attack(v) { box.noise.attack.setValue(v); },
|
|
208
|
+
get hold() { return box.noise.hold.getValue(); },
|
|
209
|
+
set hold(v) { box.noise.hold.setValue(v); },
|
|
210
|
+
get release() { return box.noise.release.getValue(); },
|
|
211
|
+
set release(v) { box.noise.release.setValue(v); },
|
|
212
|
+
get volume() { return box.noise.volume.getValue(); },
|
|
213
|
+
set volume(v) { box.noise.volume.setValue(v); }
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
};
|
|
116
217
|
})(AudioUnitBoxFactory || (AudioUnitBoxFactory = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptRunner.d.ts","sourceRoot":"","sources":["../src/ScriptRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScriptRunner.d.ts","sourceRoot":"","sources":["../src/ScriptRunner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,2BAA2B,CAAA;AAIhE,qBAAa,YAAY;;gBAGT,QAAQ,EAAE,kBAAkB;IAElC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;CAgB5D"}
|
package/dist/ScriptRunner.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Chord, dbToGain, FFT, gainToDb, Interpolation, midiToHz, PPQN } from "@opendaw/lib-dsp";
|
|
1
|
+
import { Chord, ClassicWaveform, dbToGain, FFT, gainToDb, Interpolation, midiToHz, PPQN } from "@opendaw/lib-dsp";
|
|
2
|
+
import { VoicingMode } from "@opendaw/studio-enums";
|
|
2
3
|
import { AudioPlayback } from "./Api";
|
|
3
4
|
import { ApiImpl } from "./impl";
|
|
4
5
|
export class ScriptRunner {
|
|
@@ -8,7 +9,7 @@ export class ScriptRunner {
|
|
|
8
9
|
Object.assign(globalThis, {
|
|
9
10
|
...context,
|
|
10
11
|
openDAW: this.#api,
|
|
11
|
-
AudioPlayback, midiToHz, PPQN, FFT, Chord, Interpolation, dbToGain, gainToDb
|
|
12
|
+
AudioPlayback, midiToHz, PPQN, FFT, Chord, Interpolation, dbToGain, gainToDb, ClassicWaveform, VoicingMode
|
|
12
13
|
});
|
|
13
14
|
const blob = new Blob([jsCode], { type: "text/javascript" });
|
|
14
15
|
const url = URL.createObjectURL(blob);
|
|
@@ -3,12 +3,19 @@ export declare class DelayEffectImpl implements DelayEffect {
|
|
|
3
3
|
readonly key: "delay";
|
|
4
4
|
label: string;
|
|
5
5
|
enabled: boolean;
|
|
6
|
+
preSyncTimeLeft: number;
|
|
7
|
+
preMillisTimeLeft: number;
|
|
8
|
+
preSyncTimeRight: number;
|
|
9
|
+
preMillisTimeRight: number;
|
|
6
10
|
delay: number;
|
|
11
|
+
millisTime: number;
|
|
7
12
|
feedback: number;
|
|
8
13
|
cross: number;
|
|
14
|
+
lfoSpeed: number;
|
|
15
|
+
lfoDepth: number;
|
|
9
16
|
filter: number;
|
|
10
|
-
wet: number;
|
|
11
17
|
dry: number;
|
|
18
|
+
wet: number;
|
|
12
19
|
constructor(props?: Partial<DelayEffect>);
|
|
13
20
|
}
|
|
14
21
|
//# sourceMappingURL=DelayEffectImpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayEffectImpl.d.ts","sourceRoot":"","sources":["../../src/impl/DelayEffectImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAA;AAElC,qBAAa,eAAgB,YAAW,WAAW;IAC/C,QAAQ,CAAC,GAAG,EAAG,OAAO,CAAS;IAE/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"DelayEffectImpl.d.ts","sourceRoot":"","sources":["../../src/impl/DelayEffectImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAA;AAElC,qBAAa,eAAgB,YAAW,WAAW;IAC/C,QAAQ,CAAC,GAAG,EAAG,OAAO,CAAS;IAE/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAGhB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAG1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IAGd,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;gBAEC,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;CAyB3C"}
|
|
@@ -2,20 +2,42 @@ export class DelayEffectImpl {
|
|
|
2
2
|
key = "delay";
|
|
3
3
|
label;
|
|
4
4
|
enabled;
|
|
5
|
+
// Pre-delay Left
|
|
6
|
+
preSyncTimeLeft;
|
|
7
|
+
preMillisTimeLeft;
|
|
8
|
+
// Pre-delay Right
|
|
9
|
+
preSyncTimeRight;
|
|
10
|
+
preMillisTimeRight;
|
|
11
|
+
// Main Delay
|
|
5
12
|
delay;
|
|
13
|
+
millisTime;
|
|
6
14
|
feedback;
|
|
7
15
|
cross;
|
|
16
|
+
lfoSpeed;
|
|
17
|
+
lfoDepth;
|
|
8
18
|
filter;
|
|
9
|
-
|
|
19
|
+
// Mix
|
|
10
20
|
dry;
|
|
21
|
+
wet;
|
|
11
22
|
constructor(props) {
|
|
12
23
|
this.label = props?.label ?? "Delay";
|
|
13
24
|
this.enabled = props?.enabled ?? true;
|
|
25
|
+
// Pre-delay Left
|
|
26
|
+
this.preSyncTimeLeft = props?.preSyncTimeLeft ?? 0;
|
|
27
|
+
this.preMillisTimeLeft = props?.preMillisTimeLeft ?? 0;
|
|
28
|
+
// Pre-delay Right
|
|
29
|
+
this.preSyncTimeRight = props?.preSyncTimeRight ?? 0;
|
|
30
|
+
this.preMillisTimeRight = props?.preMillisTimeRight ?? 0;
|
|
31
|
+
// Main Delay
|
|
14
32
|
this.delay = props?.delay ?? 4;
|
|
33
|
+
this.millisTime = props?.millisTime ?? 0;
|
|
15
34
|
this.feedback = props?.feedback ?? 0.5;
|
|
16
35
|
this.cross = props?.cross ?? 0;
|
|
36
|
+
this.lfoSpeed = props?.lfoSpeed ?? 0;
|
|
37
|
+
this.lfoDepth = props?.lfoDepth ?? 0;
|
|
17
38
|
this.filter = props?.filter ?? 0;
|
|
18
|
-
|
|
39
|
+
// Mix
|
|
19
40
|
this.dry = props?.dry ?? 0.0;
|
|
41
|
+
this.wet = props?.wet ?? -6.0;
|
|
20
42
|
}
|
|
21
43
|
}
|
|
@@ -2,12 +2,13 @@ import { AuxAudioUnit, GroupAudioUnit, Instrument, InstrumentAudioUnit, Instrume
|
|
|
2
2
|
import { AudioUnitImpl } from "./AudioUnitImpl";
|
|
3
3
|
import { SendImpl } from "./SendImpl";
|
|
4
4
|
import { InstrumentImpl } from "./InstrumentImpl";
|
|
5
|
+
import { Procedure } from "@opendaw/lib-std";
|
|
5
6
|
export declare class InstrumentAudioUnitImpl extends AudioUnitImpl implements InstrumentAudioUnit {
|
|
6
7
|
#private;
|
|
7
8
|
readonly kind: "instrument";
|
|
8
9
|
instrument: InstrumentImpl;
|
|
9
|
-
constructor(instrumentName: keyof Instruments,
|
|
10
|
-
setInstrument(instrumentName: keyof Instruments,
|
|
10
|
+
constructor(instrumentName: keyof Instruments, constructorFn?: Procedure<any>);
|
|
11
|
+
setInstrument(instrumentName: keyof Instruments, constructorFn?: Procedure<any>): Instrument;
|
|
11
12
|
addSend(target: AuxAudioUnit | GroupAudioUnit, props?: Partial<Send>): Send;
|
|
12
13
|
removeSend(send: Send): void;
|
|
13
14
|
get sends(): ReadonlyArray<SendImpl>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstrumentAudioUnitImpl.d.ts","sourceRoot":"","sources":["../../src/impl/InstrumentAudioUnitImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAC,MAAM,QAAQ,CAAA;AACvG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"InstrumentAudioUnitImpl.d.ts","sourceRoot":"","sources":["../../src/impl/InstrumentAudioUnitImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAC,MAAM,QAAQ,CAAA;AACvG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAS,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAElD,qBAAa,uBAAwB,SAAQ,aAAc,YAAW,mBAAmB;;IACrF,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;IAGrC,UAAU,EAAE,cAAc,CAAA;gBAEd,cAAc,EAAE,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;IAK7E,aAAa,CAAC,cAAc,EAAE,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU;IAK5F,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAM3E,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAE5B,IAAI,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAqB;CAC5D"}
|
|
@@ -6,12 +6,12 @@ export class InstrumentAudioUnitImpl extends AudioUnitImpl {
|
|
|
6
6
|
kind = "instrument";
|
|
7
7
|
#sends = [];
|
|
8
8
|
instrument;
|
|
9
|
-
constructor(instrumentName,
|
|
9
|
+
constructor(instrumentName, constructorFn) {
|
|
10
10
|
super();
|
|
11
|
-
this.instrument = new InstrumentImpl(this, instrumentName,
|
|
11
|
+
this.instrument = new InstrumentImpl(this, instrumentName, constructorFn);
|
|
12
12
|
}
|
|
13
|
-
setInstrument(instrumentName,
|
|
14
|
-
this.instrument = new InstrumentImpl(this, instrumentName,
|
|
13
|
+
setInstrument(instrumentName, constructorFn) {
|
|
14
|
+
this.instrument = new InstrumentImpl(this, instrumentName, constructorFn);
|
|
15
15
|
return this.instrument;
|
|
16
16
|
}
|
|
17
17
|
addSend(target, props) {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { Procedure } from "@opendaw/lib-std";
|
|
1
2
|
import { Instrument, InstrumentAudioUnit, Instruments } from "../Api";
|
|
2
3
|
import { InstrumentFactories } from "@opendaw/studio-adapters";
|
|
4
|
+
type AnyInstrumentConstructor = Procedure<Instruments[keyof Instruments]>;
|
|
3
5
|
export declare class InstrumentImpl implements Instrument {
|
|
4
6
|
readonly audioUnit: InstrumentAudioUnit;
|
|
5
7
|
readonly name: InstrumentFactories.Keys;
|
|
6
|
-
readonly
|
|
7
|
-
constructor(audioUnit: InstrumentAudioUnit, name: keyof Instruments,
|
|
8
|
+
readonly constructorFn?: AnyInstrumentConstructor;
|
|
9
|
+
constructor(audioUnit: InstrumentAudioUnit, name: keyof Instruments, constructorFn?: AnyInstrumentConstructor);
|
|
8
10
|
}
|
|
11
|
+
export {};
|
|
9
12
|
//# sourceMappingURL=InstrumentImpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstrumentImpl.d.ts","sourceRoot":"","sources":["../../src/impl/InstrumentImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAA;AAE5D,qBAAa,cAAe,YAAW,UAAU;IAC7C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAA;IAEvC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"InstrumentImpl.d.ts","sourceRoot":"","sources":["../../src/impl/InstrumentImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAA;AAE5D,KAAK,wBAAwB,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,CAAC,CAAA;AAEzE,qBAAa,cAAe,YAAW,UAAU;IAC7C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAA;IAEvC,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAA;gBAErC,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,wBAAwB;CAKhH"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export class InstrumentImpl {
|
|
2
2
|
audioUnit;
|
|
3
3
|
name;
|
|
4
|
-
|
|
5
|
-
constructor(audioUnit, name,
|
|
4
|
+
constructorFn;
|
|
5
|
+
constructor(audioUnit, name, constructorFn) {
|
|
6
6
|
this.audioUnit = audioUnit;
|
|
7
7
|
this.name = name;
|
|
8
|
-
this.
|
|
8
|
+
this.constructorFn = constructorFn;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { int } from "@opendaw/lib-std";
|
|
1
|
+
import { int, Procedure } from "@opendaw/lib-std";
|
|
2
2
|
import { AuxAudioUnit, GroupAudioUnit, InstrumentAudioUnit, Instruments, OutputAudioUnit, Project } from "../Api";
|
|
3
3
|
import { ApiImpl } from "./ApiImpl";
|
|
4
4
|
import { InstrumentAudioUnitImpl } from "./InstrumentAudioUnitImpl";
|
|
@@ -15,7 +15,7 @@ export declare class ProjectImpl implements Project {
|
|
|
15
15
|
};
|
|
16
16
|
constructor(api: ApiImpl, name: string);
|
|
17
17
|
openInStudio(): void;
|
|
18
|
-
addInstrumentUnit<KEY extends keyof Instruments>(name: KEY,
|
|
18
|
+
addInstrumentUnit<KEY extends keyof Instruments>(name: KEY, constructorFn?: Procedure<Instruments[KEY]>): InstrumentAudioUnit;
|
|
19
19
|
addAuxUnit(props?: Partial<GroupAudioUnit>): AuxAudioUnit;
|
|
20
20
|
addGroupUnit(props?: Partial<GroupAudioUnit>): GroupAudioUnit;
|
|
21
21
|
get instrumentUnits(): ReadonlyArray<InstrumentAudioUnitImpl>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectImpl.d.ts","sourceRoot":"","sources":["../../src/impl/ProjectImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"ProjectImpl.d.ts","sourceRoot":"","sources":["../../src/impl/ProjectImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAC,MAAM,QAAQ,CAAA;AAC/G,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AAGvD,qBAAa,WAAY,YAAW,OAAO;;IAEvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAEhC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE;QAAE,SAAS,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE,CAAiC;gBAMxE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;IAOtC,YAAY,IAAI,IAAI;IAIpB,iBAAiB,CAAC,GAAG,SAAS,MAAM,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB;IAM7H,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY;IAMzD,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAM7D,IAAI,eAAe,IAAI,aAAa,CAAC,uBAAuB,CAAC,CAA2B;IACxF,IAAI,QAAQ,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAwB;IACvE,IAAI,UAAU,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAA0B;CAChF"}
|
package/dist/impl/ProjectImpl.js
CHANGED
|
@@ -21,8 +21,8 @@ export class ProjectImpl {
|
|
|
21
21
|
openInStudio() {
|
|
22
22
|
this.#api.openProject(ProjectConverter.toSkeleton(this).boxGraph.toArrayBuffer(), this.name);
|
|
23
23
|
}
|
|
24
|
-
addInstrumentUnit(name,
|
|
25
|
-
const unit = new InstrumentAudioUnitImpl(name,
|
|
24
|
+
addInstrumentUnit(name, constructorFn) {
|
|
25
|
+
const unit = new InstrumentAudioUnitImpl(name, constructorFn);
|
|
26
26
|
this.#instruments.push(unit);
|
|
27
27
|
return unit;
|
|
28
28
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendaw/studio-scripting",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"license": "LGPL-3.0-or-later",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
"test": "echo \"No tests to run\""
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@opendaw/lib-box": "^0.0.
|
|
34
|
-
"@opendaw/lib-dsp": "^0.0.
|
|
35
|
-
"@opendaw/lib-runtime": "^0.0.
|
|
36
|
-
"@opendaw/lib-std": "^0.0.
|
|
37
|
-
"@opendaw/studio-adapters": "^0.0.
|
|
38
|
-
"@opendaw/studio-boxes": "^0.0.
|
|
39
|
-
"@opendaw/studio-enums": "^0.0.
|
|
33
|
+
"@opendaw/lib-box": "^0.0.65",
|
|
34
|
+
"@opendaw/lib-dsp": "^0.0.64",
|
|
35
|
+
"@opendaw/lib-runtime": "^0.0.64",
|
|
36
|
+
"@opendaw/lib-std": "^0.0.64",
|
|
37
|
+
"@opendaw/studio-adapters": "^0.0.73",
|
|
38
|
+
"@opendaw/studio-boxes": "^0.0.66",
|
|
39
|
+
"@opendaw/studio-enums": "^0.0.56"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@opendaw/eslint-config": "^0.0.27",
|
|
43
43
|
"@opendaw/typescript-config": "^0.0.28"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "043469788d823f2ae6ca0f5c9f1483c06edf8659"
|
|
46
46
|
}
|