[gmpi] Re: New Reqs 3.8 - Events
- From: David Olofson <david@xxxxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Tue, 23 Dec 2003 18:54:42 +0100
On Tuesday 23 December 2003 15.30, gogins@xxxxxxxxxxxx wrote:
> As I have been attempting to point out, musicians will NOT tolerate
> approximation of piecewise continous functions of time with a few
> dozen ramps. Or if they do tolerate it, the technology will force
> their style down a particular path, one less flexible in time.
Well, anything we can come up with will be an approximation, even if
it could be accurate to several figures within every audio sample
frame. One polynomial per buffer doesn't strike me as a particularly
accurate approximation, and definitely not the fastest or least
problematic one. (See other posts on over/undershoot near control
points.)
A tempo control with ramping support is a simple and scalable
solution. Plugins can easily calculate tempo, song position etc with
sample accuracy, oversampled if desired. You can make abrupt changes
using SET events (or zero duration ramps, depending on the protocol),
and you can apply linear ramps starting and ending with sample
accurate timing. You can communicate tempo changes all the way up to
the audio rate (one event per sample) for extreme accuracy, but you
can also get away with only a few tempo events throughout the song,
depending on the tempo map. Tempo tracking accuracy can be a user
configurable parameter on any object that maintains a tempo map
and/or generates tempo events.
> You may have noticed that jazz and classical musicians seldom use
> MIDI sequencing in the studio. This is why. MIDI does not, and
> cannot, capture jazz or classical time. GMPI has the potential to
> do that - if you wish.
I would think the majority of jazz and classical musicians use mostly
"real" instruments for other reasons anyway. *If* they were to use
MIDI controlled or GMPI packaged substitutes for some reason, there
wouldn't be any beatsync patches and effects in the setup. Just a
sequencer driving one or more synths. Thus, MIDI's inability to keep
multiple musical time aware devices in sync is not an issue.
The retro drum machine style tempo handling of your average sequencer
most probably *does* cause trouble for jazz and classical people (and
most others, although maybe not as frequently) - but that's not a
MIDI related problem.
Anyway, I'm not arguing against a proper tempo map interface in GMPI.
I think most users of digital studio technology would occasionally
benefit from sequencers, synths and effects staying in tight sync and
understanding what's going on, even when the tempo map is "abused" a
bit. Some may get away with cumbersome workarounds as it is now,
whereas others are forced to use completely different (ie non
mainstream) tools, whether they like it or not.
//David Olofson - Programmer, Composer, Open Source Advocate
.- Audiality -----------------------------------------------.
| Free/Open Source audio engine for games and multimedia. |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
--- http://olofson.net --- http://www.reologica.se ---
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- Follow-Ups:
- [gmpi] Re: New Reqs 3.8 - Events
- From: Jeff McClintock
- References:
- [gmpi] Re: New Reqs 3.8 - Events
- From: gogins@xxxxxxxxxxxx
Other related posts:
- » [gmpi] New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- » [gmpi] Re: New Reqs 3.8 - Events
- [gmpi] Re: New Reqs 3.8 - Events
- From: Jeff McClintock
- [gmpi] Re: New Reqs 3.8 - Events
- From: gogins@xxxxxxxxxxxx