[linux-audio-dev] MIDI groove theory

Dave Robillard drobilla at connect.carleton.ca
Tue Aug 10 19:20:51 UTC 2004


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-




More information about the Linux-audio-dev mailing list