[gst-devel] Midi and GStreamer

Benjamin Otte in7y118 at public.uni-hamburg.de
Thu Jul 10 11:19:33 CEST 2003

For a plugin like the synthesizer this sounds quite logical, yes.
Though you will probably not want to use fixed duration buffers for midi.
and use filler events instead when you have latency problems.

btw: If you really want to get started with doing midi on GStreamer, you
should probably try doing a midifile plugin and a ossmidisink first,
before trying to do the hard stuff like latency dependant processing, so
you get a feeling of what programming with GStreamer is like.


On 9 Jul 2003, nick wrote:

> Hi All
> The thing I am thinking about is how a gstreamer plugin would handle
> MIDI and audio at the same time... In my mind, this requires the midi
> and audio buffers to be processed on a 1-to-1 basis (so 1 buffer of
> audio and 1 buffer of midi cover the same duration of time).. Does what
> I'm saying make sense to you?
> (For me, I would want to be able to write amSynth as a plugin - this
> would require that when my process function is called, I have a midi
> buffer as input, containing how ever many midi events occurred in, say,
> 1/100 sec for example, and then I generate an audio buffer of the same
> time duration...)
> Any ideas? Maybe this will indicate the kind of problems to be faced.
> Nick
> On Tue, 2003-07-08 at 13:43, Benjamin Otte wrote:
> > On 8 Jul 2003, Christian Fredrik Kalager Schaller wrote:
> >
> > > GStreamer works best with near-constant data flow so a midi stream
> > > would probably have to consist mostly of filler events, sent at a constant
> > > tick-rate.
> > >
> > I don't really know why it were necessary to have a near-constant
> > dataflow.
> > Subtitling surely works with a very non-constant dataflow and the
> > presentation from Thomas at GUADEC showed that it works.
> >
> > The only part of GStreamer that might need filler events would be realtime
> > processing, where you want to know that nothing happened for some time.
> > But it should not be necessary for midi file reading or anything else
> > described in that post.
> >
> >
> > Benjamin
> --
> nixx at nixx.org.uk          |     amSynth lead developer
> JabberID: nixx at jabber.org |     http://amsynthe.sf.net

More information about the gstreamer-devel mailing list