[gst-devel] Midi in gstreamer

Josh Green jgreen at users.sourceforge.net
Sun Jun 13 09:19:04 CEST 2004

On Sun, 2004-06-13 at 07:27, Jonathan LIGER wrote:
> Hi,
> I just wondered whether someone were currently working on an
> implementation of the proposals which can be found in 
> gstreamer/gstreamer/docs/random/uraeus/gstreamer_and_midi.txt. If not, I
> would like to try to make a "proof of concept" implementation as a first
> contribution to gstreamer.
> _john.

Hello, I'm new to the Gstreamer devel list. I'm working on an
application called Swami (http://swami.sourceforge.net) which is a
GObject based application and supporting libraries for editing wavetable
instrument patches (such as SoundFont, DLS and GigaSampler). Its still
in development and has been for almost 2 years, but it is coming along.
One of the things it has is a GValue encapsulated control/event network.
Some of the events going over this network are MIDI. I essentially made
a GValue "boxed" type of a union structure pretty similar to ALSA's MIDI
event structure. I've been looking over my application and realizing
that a lot of what I have been working on is closely related to
GStreamer. I also started thinking that I could be using it for my audio
output device and sample file importing. Currently the Swami web site is
some what out of date, and I don't have my most recent stuff in CVS. I
just couldn't resist posting, after reading the message subject. If
anyone is interested in getting these projects to fit together nicely,
I'd really love some input. I'll put together some ideas of how things
could be interfaced. I envision a couple new plugin types that Swami
could provide:
IpatchFile (instrument patch file)
IpatchItem (base class of all patch items)
SwamiWavetbl (A wavetable device, such as FluidSynth a software
synthesizer, and hardware synths like EMU8k/10k)

As to the MIDI stuff, it would likely make sense to just use some of
what Swami has as the basis of a MIDI implementation. Not sure how
helpful the GValue control network would be, but it allows the passing
of arbitrary GValue types (integer, floats, strings, objects, etc).
Thanks for any input on this matter :)
	Josh Green

More information about the gstreamer-devel mailing list