triggerNote method
Future<void>
triggerNote({
- required String synthId,
- required double frequencyHz,
- required Duration duration,
- required double velocity,
- Duration delay = Duration.zero,
override
Implementation
@override
Future<void> triggerNote({
required String synthId,
required double frequencyHz,
required Duration duration,
required double velocity,
Duration delay = Duration.zero,
}) async {
final synth = _requireSynth(synthId);
void playNow() {
synth.synth
.callMethodVarArgs<JSAny?>('triggerAttackRelease'.toJS, <JSAny?>[
frequencyHz.toJS,
(duration.inMicroseconds / Duration.microsecondsPerSecond).toJS,
_tone!.callMethod<JSAny?>('now'.toJS),
velocity.clamp(0.0, 1.0).toDouble().toJS,
]);
}
if (delay <= Duration.zero) {
playNow();
return;
}
final timer = Timer(delay, playNow);
_scheduledTimers.putIfAbsent(synthId, () => <Timer>[]).add(timer);
}