On January 22, 2010 05:59:06 pm you wrote:
On Fri, 2010-01-22 at 16:37 -0500, Tim E. Real wrote:
So my idea was to 'direct drive'
(increment) the midi engine's
tick counter by the incoming sync messages.
Drift between master and slave has been essentially eliminated.
Response is instantaneous.
Keep that! but ..
The only slight drawback is the resolution.
I've abandoned any notion of using a tempo or tempo map,
or to obtain sub-tick (frame) resolution, during external sync.
What you can do is guess that the next tick will come approximately at
the same interval as the previous, divide that interval by four to get a
useable resolution. If a tick comes early, dump whatever notes are left
to be played up to that point. Somebody is fooling around with
variospeed fx, and there is no consistent beat or 'feel' anyway.
Good, but
that would introduce glitches.
What if the next sync comes at two or three times as long as the last one?
One simple (slower) tempo change and the rest of the song is out of sync.
We should not guess, we cannot assume or look ahead.
The only solution seemed clear to me: Straight ahead linear real time,
no assumptions of what's to come.
At standard 24 ticks per quarter note, resolution
is 1/3 of a
64th note. Not too shabby, acceptable for music.
Ok for written music or if you have a tempo of 280 bpm, else not!
Does not matter
tempo, any tempo works, 20 or 500.
Really the resolution it is not noticeable, even at 20BPM.
64th notes are triggered on the second third of where the note should have
been. A resolution of 1/3 of a 64th note is pretty good, for music, eh?
Now I'm
thinking, this is probably how sync was designed to be used,
considering simple old 80's hardware - (what clock filtering?).
The very first ones (like the MSQ 700 I have on display here on my DX7),
but not later ones. Roland also made a gadget you could tap, and it
would create a 24 pulse/q-note sync out of that. It could be set to
average over 2, 3 or 4 'taps' (or kicks on the bass drum, or ..)
Cool, an
averaging tempo generator!
Rock solid and
stable, even when going absolutely nuts
with the tempo knob! No noticeable resolution effects.
If you say so ...
No kidding, this puppy is ready for any instantaneous change in
external tempo, step or otherwise. It really is usable, now.
The crazy tempo knob thing was just a stress test.
The real challenge will be supporting the audio tracks with external sync,
when (if) I finish adding time stretching, with no tempo map to go by.
Initial thoughts seemed positive on this.
Tim.