tone 15.3.2 → 15.3.3
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/Tone/core/clock/Transport.test.ts +9 -6
- package/Tone/core/context/Destination.test.ts +1 -1
- package/Tone/core/context/Param.test.ts +25 -38
- package/Tone/core/type/Time.test.ts +5 -2
- package/Tone/event/Sequence.test.ts +12 -5
- package/Tone/instrument/MetalSynth.test.ts +1 -1
- package/Tone/signal/Signal.test.ts +232 -26
- package/Tone/signal/Signal.ts +98 -0
- package/Tone/version.ts +1 -1
- package/build/Tone.js +1 -1
- package/build/Tone.js.map +1 -1
- package/build/esm/signal/Signal.d.ts +10 -0
- package/build/esm/signal/Signal.js +63 -1
- package/build/esm/signal/Signal.js.map +1 -1
- package/build/esm/version.js +1 -1
- package/package.json +1 -1
|
@@ -50,6 +50,7 @@ export declare class Signal<TypeName extends UnitName = "number"> extends ToneAu
|
|
|
50
50
|
constructor(options?: Partial<SignalOptions<TypeName>>);
|
|
51
51
|
static getDefaults(): SignalOptions<any>;
|
|
52
52
|
connect(destination: InputNode, outputNum?: number, inputNum?: number): this;
|
|
53
|
+
disconnect(destination?: InputNode, outputNum?: number, inputNum?: number): this;
|
|
53
54
|
dispose(): this;
|
|
54
55
|
setValueAtTime(value: UnitMap[TypeName], time: Time): this;
|
|
55
56
|
getValueAtTime(time: Time): UnitMap[TypeName];
|
|
@@ -90,3 +91,12 @@ export declare class Signal<TypeName extends UnitName = "number"> extends ToneAu
|
|
|
90
91
|
* @param inputNum the input number
|
|
91
92
|
*/
|
|
92
93
|
export declare function connectSignal(signal: OutputNode, destination: InputNode, outputNum?: number, inputNum?: number): void;
|
|
94
|
+
/**
|
|
95
|
+
* Disconnect a signal connection and restore the value of the destination if
|
|
96
|
+
* it was a signal that was overridden by the connection.
|
|
97
|
+
* @param signal
|
|
98
|
+
* @param destination
|
|
99
|
+
* @param outputNum
|
|
100
|
+
* @param inputNum
|
|
101
|
+
*/
|
|
102
|
+
export declare function disconnectSignal(signal: OutputNode, destination?: InputNode, outputNum?: number, inputNum?: number): void;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Param } from "../core/context/Param.js";
|
|
2
|
-
import { ToneAudioNode, } from "../core/context/ToneAudioNode.js";
|
|
2
|
+
import { disconnect, ToneAudioNode, } from "../core/context/ToneAudioNode.js";
|
|
3
3
|
import { connect } from "../core/context/ToneAudioNode.js";
|
|
4
4
|
import { isAudioParam } from "../core/util/AdvancedTypeCheck.js";
|
|
5
5
|
import { optionsFromArguments } from "../core/util/Defaults.js";
|
|
6
|
+
import { isUndef } from "../core/util/TypeCheck.js";
|
|
6
7
|
import { ToneConstantSource } from "./ToneConstantSource.js";
|
|
7
8
|
/**
|
|
8
9
|
* A signal is an audio-rate value. Tone.Signal is a core component of the library.
|
|
@@ -58,6 +59,11 @@ export class Signal extends ToneAudioNode {
|
|
|
58
59
|
connectSignal(this, destination, outputNum, inputNum);
|
|
59
60
|
return this;
|
|
60
61
|
}
|
|
62
|
+
disconnect(destination, outputNum, inputNum) {
|
|
63
|
+
// disconnect the signal
|
|
64
|
+
disconnectSignal(this, destination, outputNum, inputNum);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
61
67
|
dispose() {
|
|
62
68
|
super.dispose();
|
|
63
69
|
this._param.dispose();
|
|
@@ -159,6 +165,10 @@ export class Signal extends ToneAudioNode {
|
|
|
159
165
|
return this;
|
|
160
166
|
}
|
|
161
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Keep track of connected signals so they can be disconnected and restored to their previous value
|
|
170
|
+
*/
|
|
171
|
+
const connectedSignals = new WeakMap();
|
|
162
172
|
/**
|
|
163
173
|
* When connecting from a signal, it's necessary to zero out the node destination
|
|
164
174
|
* node if that node is also a signal. If the destination is not 0, then the values
|
|
@@ -170,9 +180,11 @@ export class Signal extends ToneAudioNode {
|
|
|
170
180
|
* @param inputNum the input number
|
|
171
181
|
*/
|
|
172
182
|
export function connectSignal(signal, destination, outputNum, inputNum) {
|
|
183
|
+
var _a;
|
|
173
184
|
if (destination instanceof Param ||
|
|
174
185
|
isAudioParam(destination) ||
|
|
175
186
|
(destination instanceof Signal && destination.override)) {
|
|
187
|
+
const previousValue = destination.value;
|
|
176
188
|
// cancel changes
|
|
177
189
|
destination.cancelScheduledValues(0);
|
|
178
190
|
// reset the value
|
|
@@ -181,7 +193,57 @@ export function connectSignal(signal, destination, outputNum, inputNum) {
|
|
|
181
193
|
if (destination instanceof Signal) {
|
|
182
194
|
destination.overridden = true;
|
|
183
195
|
}
|
|
196
|
+
// store the connection
|
|
197
|
+
if (!connectedSignals.has(signal)) {
|
|
198
|
+
connectedSignals.set(signal, []);
|
|
199
|
+
}
|
|
200
|
+
(_a = connectedSignals.get(signal)) === null || _a === void 0 ? void 0 : _a.push({
|
|
201
|
+
destination,
|
|
202
|
+
outputNum: outputNum || 0,
|
|
203
|
+
inputNum: inputNum || 0,
|
|
204
|
+
previousValue,
|
|
205
|
+
});
|
|
184
206
|
}
|
|
185
207
|
connect(signal, destination, outputNum, inputNum);
|
|
186
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Disconnect a signal connection and restore the value of the destination if
|
|
211
|
+
* it was a signal that was overridden by the connection.
|
|
212
|
+
* @param signal
|
|
213
|
+
* @param destination
|
|
214
|
+
* @param outputNum
|
|
215
|
+
* @param inputNum
|
|
216
|
+
*/
|
|
217
|
+
export function disconnectSignal(signal, destination, outputNum, inputNum) {
|
|
218
|
+
if (destination instanceof Param ||
|
|
219
|
+
isAudioParam(destination) ||
|
|
220
|
+
(destination instanceof Signal && destination.override) ||
|
|
221
|
+
destination === undefined) {
|
|
222
|
+
if (connectedSignals.has(signal)) {
|
|
223
|
+
let connections = connectedSignals.get(signal);
|
|
224
|
+
if (destination) {
|
|
225
|
+
connections = connections.filter((conn) => {
|
|
226
|
+
return (conn.destination === destination &&
|
|
227
|
+
(isUndef(outputNum) || conn.outputNum === outputNum) &&
|
|
228
|
+
(isUndef(inputNum) || conn.inputNum === inputNum));
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
if (!connections.length) {
|
|
232
|
+
throw new Error("Not connected to destination node");
|
|
233
|
+
}
|
|
234
|
+
// restore the value
|
|
235
|
+
connections.forEach((connection) => {
|
|
236
|
+
if (connection.destination instanceof Signal) {
|
|
237
|
+
connection.destination.overridden = false;
|
|
238
|
+
}
|
|
239
|
+
connection.destination.setValueAtTime(connection.previousValue, 0);
|
|
240
|
+
});
|
|
241
|
+
// remove the connection from the stored array
|
|
242
|
+
connectedSignals.set(signal, connectedSignals
|
|
243
|
+
.get(signal)
|
|
244
|
+
.filter((conn) => !connections.includes(conn)));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
disconnect(signal, destination, outputNum, inputNum);
|
|
248
|
+
}
|
|
187
249
|
//# sourceMappingURL=Signal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signal.js","sourceRoot":"","sources":["../../../Tone/signal/Signal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"Signal.js","sourceRoot":"","sources":["../../../Tone/signal/Signal.ts"],"names":[],"mappings":"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"}
|
package/build/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = "15.3.
|
|
1
|
+
export const version = "15.3.3";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|