I saw a handful of other weird behaviors, but I think if we solve
this one, all the others will fall into line.
p = Pbind(
\degree, Pn(0, 2)
).play;
At first, this was sounding only one event! After cleaning all
targets and rebuilding, it plays two but the timing is wrong.
Drilling in further using DebugNetAddr:
TempoClock.nextTimeOnGrid(1).debug("quant=1");
p = Pbind(
\debugClockTime, Pfunc { thisThread.beats.debug("abs time") },
\debugTime, Ptime(inf).trace(prefix: "relative time: "),
\degree, Pn(0, 2)
).play(quant: 1);
quant=1: 213 <-- the time when the EventStreamPlayer should start
an EventStreamPlayer
abs time: 213 <-- good, it started right
relative time: 0
abs time: 214
relative time: 1
// but, it should play the first event at 213 - it's 1 beat late! why!?
latency 0.2 SysClock logical time 217.540397793 thisThread's
logical time 214
[ 's_new', 'default', 1007, 0, 1, 'out', 0, 'freq',
261.6255653006, 'amp', 0.1, 'pan', 0.0 ]
latency 0.2 SysClock logical time 218.340397793 thisThread's
logical time 214.8
[ 'n_set', 1007, 'gate', 0 ]
abs time: 215
relative time: 2
// logical time for the second event bears no relationship to the
actual event delta = 1.0
latency 0.2 SysClock logical time 219.43505261 thisThread's
logical time 215.894654817
[ 's_new', 'default', 1006, 0, 1, 'out', 0, 'freq',
261.6255653006, 'amp', 0.1, 'pan', 0.0 ]
latency 0.2 SysClock logical time 220.23505261 thisThread's
logical time 216.694654817
[ 'n_set', 1006, 'gate', 0 ]
In 3.3.1 stable, everything is working as it should.
hjh