[gmpi] Re: New Reqs 3.8 - Events

  • From: "Michael Gogins" <gogins@xxxxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Mon, 22 Dec 2003 20:12:42 -0500

Forget about sample time. I will talk only about music time. Assume a
performance with 2 sources of events, one a notated sequence and the other a
plugin with an algorithmically generated score (which could be generated
either in advance, or in response to the incoming events from the sequence).
The notated sequence controls music time that starts out in 4/4 andante and
accelerates to allegro moderato, then abruply changes to largo in 6/4. The
plugin score needs to synchronize its tempo and meter with the notated
sequence. In order for the plugin to synchronze its events to the sequence
with sample frame precision, it could of course poll the host for music time
on every sample frame.

If the plugin only knows music time at the beginning of the sample buffer,
or with every received event, that's not precise enough. In order to
represent music time at any large multiple of the sample frame rate, the
host must send to the plugin not only the instantaneous music time and
tempo, but also the derivative of the tempo or, if the accelerando or
ritardando is not perfectly linear, a spline function and its terms so that
the plugin can interpolate the correct music time. Otherwise, sample frame
synchronization of music time is not possible.

I would like to have both of these facilities - polling and polynomial tempo
maps - since each is useful for different purposes, but if I had to choose
one, I would take the ability to poll for the exact music time on each
sample frame.

============================================
Michael Gogins
gogins at pipeline period com
Irreducible Productions
CsoundVST, an extended version of Csound for programming music and sound
Available at http://sourceforge.net/projects/csound/
============================================


----- Original Message ----- 
From: "Tim Hockin" <thockin@xxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Monday, December 22, 2003 2:54 PM
Subject: [gmpi] Re: New Reqs 3.8 - Events


> On Mon, Dec 22, 2003 at 02:05:17PM -0500, gogins@xxxxxxxxxxxx wrote:
> > Perhaps I should explain a bit. I do both algorithmically generated
scores
> > and notated scores. For algorithmic scores, I prefer absolute time from
the
> > beginning of the score in seconds, not bars and beats, but absolute time
in
> > samples would be OK.
>
> Hrrm, OK.  And if you start performace in the middle of a piece?  Does the
> host have to go through from the start of the track to the current
start-point
> and calculate the time, taking into account tempo changes?  I mean, if you
> want accurate 'N seconds since beginning' it must.  Or is it sufficient
that
> 'beginning' be ths start of playback?
>
> Can't your plugin track that itself?  Every time it gets called for
> processing, add keep a running counter of samples?  Are there any other
> plugins that need this?
>
> The immediate problem I have with it is that you need to scan through all
> the material before 'now' to know 'now' accurately.  It is entriely
> dependant on what has happened before.
>
> > For notated scores, obviously, absolute time in bars and beats is
> > necessary. The notes, however, do not necessarily start right on the
beat,
> > but usually have some swing; they lag or lead the beat. The score
>
> Nothing stops this, of course.  Assuming you care, your plugin should be
> able to get notices of musical milestones (beats/bars) as well as temporal
> control (tempo, meter).  With that information, you should be able to
fully
> know how much to swing, right?
>
> > I must know the current music time AT EVERY SAMPLE FRAME so that I can
>
> That's easily calculable, I think...
>
> > In my opinion, getting this right, which means not only ensuring the
> > ability to dispatch events based on sample-frame accurate music time
> > including swing and phrasing, but also making sure that the API is
simple
> > and natural to use for this purpose, is a critical point for GMPI.
>
> OK.  Right now we're supposed to be talking about the timestamp on events.
> I'm changing the subject, for now.
>
> > Classical music has swing just like jazz does, only it's a different
kind
> > of swing. Classical music also has rubato and many passages of slowing
down
> > and speeding up, not usually in a straightforward linear manner; hence
> > digitising music time requires not only instantaneous time, and not only
> > linear ramps, but even polynomial splines.
>
> I'm not sure what you're askign for anymore.  I've always assumed plugins
> would have full access to timestamped information about temporal control
> changes.  If the tempo changes, your plugin gets notified.  Given that,
your
> plugins which care so deeply about musical time can be accurate to the
> sample of what is happening, while othe rplugins that don't care are not
> bothered.
>
> > In other words, it would be fine with ME if GMPI did not mess with music
> > time at all, except with respect to beginning of performance or other
> > timeposts or section markings in scores. That would suffice for my own
> > purposes.
>
> I'm puzzled now.  You *don't* care about music time, except for all the
> things we say we already need.
>
> ????
>
> > But I rather think that many users, e.g. film composers, will need the
> > splines and the polymeters and the whole nine yards.
>
> I think you've confused me more than anything else.  Sorry, not trying to
be
> thick.  I'm totally unclear on what you're asking for that we don't have?
>
> ----------------------------------------------------------------------
> 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: //www.freelists.org/archives/gmpi
> Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
>


----------------------------------------------------------------------
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: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: