On Tue, 2004-08-10 at 13:48, Frank Barknecht wrote:
Hallo,
Dave Robillard hat gesagt: // Dave Robillard wrote:
Does anyone know of a page somewhere that
explains just what (on a
developer level) MIDI "groove" is? I want to implement it in a
sequencer, but all I can find is user documentation pages with useless
information.
Is it as simple as each note having a time offset (ie snare is early .5
ms, hi-hate late 1ms, etc.) or something more?
This classic Masters-At-Work house music shuffle swing thang is just
delaying every second (8th rsp. 16th) note a bit. I do this in my Pd
sequencers using percentage values (like delay notes by 66 percent of
the straight note lenght) and it's quite groovy afterwards. I also
apply some gaussian randomness to the notes' onset times to simulate
human error (which I think should be distributed gaussian, shouldn't
it?) I'm not sure I can actually feel/hear that, though.
Another important part of the groove is offbeat syncopical notes
("what's missing is what makes it groove") and those ghost notes
drummers like to play all the time (let the stick jump a bit).
Ciao
So essentially what you're saying is "MIDI groove" isn't really a
well-defined thing, just a catch-all phrase for humanization/groove
techniques in sequencers and whatnot.
All the groove facilities (file formats, etc) in the major sequencers
seem to be very proprietary, so I figured as much. I suppose it's time
to get creative...
Thanks.
(Further ranting about MIDI timing stuff ensues)
The real question is whether it's possible to make a master clock
application that can do this sorta thing for all MIDI apps on the system
(MTC? MMC?). I'm already in desperate need of a master-BPM controller
for live performance, so I might as well do it right and get groove in
there.
As I understand MTC, it's just a byte sent so many times a quarter note,
so I think doing groove this way for all MTC speaking apps would be
feasible. (is that ever going to eat MIDI bandwidth though...)
As another related problem I need to make sooperlooper aware of when bar
divisions are (so looping is accurate and not prone to drift), and I
don't think MTC is adequate for that.. I think to really take control
of the entire system's timing a master time app will be needed that
speaks many different languages (MTC and probably jack transport,
others?)
Essentially I just need the best way to sync up seq24 and sooperlooper,
and get the BPM in to any app (ie synths and effects racks). Groove
would be nice though.
Thoughts?
-DR-