mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 13:48:40 +00:00
fix: csound + dough timing
This commit is contained in:
parent
91bb0a1d36
commit
8db443ba26
@ -23,7 +23,7 @@ export const csound = register('csound', (instrument, pat) => {
|
|||||||
instrument = instrument || 'triangle';
|
instrument = instrument || 'triangle';
|
||||||
init(); // not async to support csound inside other patterns + to be able to call pattern methods after it
|
init(); // not async to support csound inside other patterns + to be able to call pattern methods after it
|
||||||
// TODO: find a alternative way to wait for csound to load (to wait with first time playback)
|
// TODO: find a alternative way to wait for csound to load (to wait with first time playback)
|
||||||
return pat.onTrigger((time, hap) => {
|
return pat.onTrigger((time_deprecate, hap, currentTime, _cps, targetTime) => {
|
||||||
if (!_csound) {
|
if (!_csound) {
|
||||||
logger('[csound] not loaded yet', 'warning');
|
logger('[csound] not loaded yet', 'warning');
|
||||||
return;
|
return;
|
||||||
@ -38,9 +38,11 @@ export const csound = register('csound', (instrument, pat) => {
|
|||||||
.join('/');
|
.join('/');
|
||||||
// TODO: find out how to send a precise ctx based time
|
// TODO: find out how to send a precise ctx based time
|
||||||
// http://www.csounds.com/manual/html/i.html
|
// http://www.csounds.com/manual/html/i.html
|
||||||
|
const timeOffset = targetTime - currentTime; // latency ?
|
||||||
|
//const timeOffset = time_deprecate - getAudioContext().currentTime
|
||||||
const params = [
|
const params = [
|
||||||
`"${instrument}"`, // p1: instrument name
|
`"${instrument}"`, // p1: instrument name
|
||||||
time - getAudioContext().currentTime, //.toFixed(precision), // p2: starting time in arbitrary unit called beats
|
timeOffset, // p2: starting time in arbitrary unit called beats
|
||||||
hap.duration + 0, // p3: duration in beats
|
hap.duration + 0, // p3: duration in beats
|
||||||
// instrument specific params:
|
// instrument specific params:
|
||||||
freq, //.toFixed(precision), // p4: frequency
|
freq, //.toFixed(precision), // p4: frequency
|
||||||
|
|||||||
@ -74,6 +74,6 @@ export const dough = async (code) => {
|
|||||||
worklet.node.connect(ac.destination);
|
worklet.node.connect(ac.destination);
|
||||||
};
|
};
|
||||||
|
|
||||||
export function doughTrigger(t, hap, currentTime, duration, cps) {
|
export function doughTrigger(time_deprecate, hap, currentTime, cps, targetTime) {
|
||||||
window.postMessage({ time: t, dough: hap.value, currentTime, duration, cps });
|
window.postMessage({ time: targetTime, dough: hap.value, currentTime, duration: hap.duration, cps });
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user